/****************************************************************************
 * arch/arm/src/stm32h7/hardware/stm32h7x3xx_pinmap.h
 *
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.  The
 * ASF licenses this file to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance with the
 * License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
 * License for the specific language governing permissions and limitations
 * under the License.
 *
 ****************************************************************************/

#ifndef __ARCH_ARM_SRC_STM32H7_HARDWARE_STM32H7X3XX_PINMAP_H
#define __ARCH_ARM_SRC_STM32H7_HARDWARE_STM32H7X3XX_PINMAP_H

/****************************************************************************
 * Included Files
 ****************************************************************************/

#include <nuttx/config.h>

#include "stm32_gpio.h"

#if defined(CONFIG_STM32H7_STM32H7X3XX) || \
    defined(CONFIG_STM32H7_STM32H7B3XX) || \
    defined(CONFIG_STM32H7_STM32H7X5XX) || \
    defined(CONFIG_STM32H7_STM32H7X7XX)

/****************************************************************************
 * Pre-processor Definitions
 ****************************************************************************/

/* Alternate Pin Functions.
 * All members of the STM32H76|7xxx family share the same pin multiplexing
 *(although they may differ in the pins physically available).
 *
 * Alternative pin selections are provided with a numeric suffix like _1, _2,
 * etc. Drivers, however, will use the pin selection without the numeric
 * suffix.
 * Additional definitions are required in the board.h file.  For example,
 * if CAN1_RX connects via PA11 on some board, then the following definitions
 * should appear in the board.h header file for that board:
 *
 * #define GPIO_CAN1_RX GPIO_CAN1_RX_1
 *
 * The driver will then automatically configure PA11 as the CAN1 RX pin.
 */

/* WARNING!!! WARNING!!! WARNING!!! WARNING!!! WARNING!!! WARNING!!!
 * Additional effort is required to select specific GPIO options such as
 * frequency, open-drain/push-pull, and pull-up/down!  Just the basics are
 * defined for most pins in this file.
 */

/* ADC */

#define GPIO_ADC1_INP2_0          (GPIO_ANALOG|GPIO_PORTF|GPIO_PIN11)
#define GPIO_ADC1_INN2_0          (GPIO_ANALOG|GPIO_PORTF|GPIO_PIN12)
#define GPIO_ADC1_INP6_0          (GPIO_ANALOG|GPIO_PORTF|GPIO_PIN12)
#define GPIO_ADC1_INP16_0         (GPIO_ANALOG|GPIO_PORTA|GPIO_PIN0)
#define GPIO_ADC1_INN16_0         (GPIO_ANALOG|GPIO_PORTA|GPIO_PIN1)
#define GPIO_ADC1_INP17_0         (GPIO_ANALOG|GPIO_PORTA|GPIO_PIN1)

#define GPIO_ADC12_INP0_0         (GPIO_ANALOG|GPIO_PORTA|GPIO_PIN0_C)
#define GPIO_ADC12_INP1_0         (GPIO_ANALOG|GPIO_PORTA|GPIO_PIN1_C)
#define GPIO_ADC12_INN1_0         (GPIO_ANALOG|GPIO_PORTA|GPIO_PIN0_C)
#define GPIO_ADC12_INP3_0         (GPIO_ANALOG|GPIO_PORTA|GPIO_PIN6)
#define GPIO_ADC12_INN3_0         (GPIO_ANALOG|GPIO_PORTA|GPIO_PIN7)
#define GPIO_ADC12_INP4_0         (GPIO_ANALOG|GPIO_PORTC|GPIO_PIN4)
#define GPIO_ADC12_INN4_0         (GPIO_ANALOG|GPIO_PORTC|GPIO_PIN5)
#define GPIO_ADC12_INP5_0         (GPIO_ANALOG|GPIO_PORTB|GPIO_PIN1)
#define GPIO_ADC12_INN5_0         (GPIO_ANALOG|GPIO_PORTB|GPIO_PIN0)
#define GPIO_ADC12_INP7_0         (GPIO_ANALOG|GPIO_PORTA|GPIO_PIN7)
#define GPIO_ADC12_INP8_0         (GPIO_ANALOG|GPIO_PORTC|GPIO_PIN5)
#define GPIO_ADC12_INP9_0         (GPIO_ANALOG|GPIO_PORTB|GPIO_PIN0)
#define GPIO_ADC12_INN12_0        (GPIO_ANALOG|GPIO_PORTC|GPIO_PIN3)
#define GPIO_ADC12_INP13_0        (GPIO_ANALOG|GPIO_PORTC|GPIO_PIN3)
#define GPIO_ADC12_INP14_0        (GPIO_ANALOG|GPIO_PORTA|GPIO_PIN2)
#define GPIO_ADC12_INP15_0        (GPIO_ANALOG|GPIO_PORTA|GPIO_PIN3)
#define GPIO_ADC12_INP18_0        (GPIO_ANALOG|GPIO_PORTA|GPIO_PIN4)
#define GPIO_ADC12_INN18_0        (GPIO_ANALOG|GPIO_PORTA|GPIO_PIN5)
#define GPIO_ADC12_INP19_0        (GPIO_ANALOG|GPIO_PORTA|GPIO_PIN5)

#define GPIO_ADC123_INP10_0       (GPIO_ANALOG|GPIO_PORTC|GPIO_PIN0)
#define GPIO_ADC123_INN10_0       (GPIO_ANALOG|GPIO_PORTC|GPIO_PIN1)
#define GPIO_ADC123_INP11_0       (GPIO_ANALOG|GPIO_PORTC|GPIO_PIN1)
#define GPIO_ADC123_INN11_0       (GPIO_ANALOG|GPIO_PORTC|GPIO_PIN2)
#define GPIO_ADC123_INP12_0       (GPIO_ANALOG|GPIO_PORTC|GPIO_PIN2)

#define GPIO_ADC2_INN2_0          (GPIO_ANALOG|GPIO_PORTF|GPIO_PIN14)
#define GPIO_ADC2_INP2_0          (GPIO_ANALOG|GPIO_PORTF|GPIO_PIN13)
#define GPIO_ADC2_INP6_0          (GPIO_ANALOG|GPIO_PORTF|GPIO_PIN14)

#define GPIO_ADC3_INP0_0          (GPIO_ANALOG|GPIO_PORTC|GPIO_PIN2_C)
#define GPIO_ADC3_INP1_0          (GPIO_ANALOG|GPIO_PORTC|GPIO_PIN3_C)
#define GPIO_ADC3_INN1_0          (GPIO_ANALOG|GPIO_PORTC|GPIO_PIN2_C)
#define GPIO_ADC3_INP2_0          (GPIO_ANALOG|GPIO_PORTF|GPIO_PIN9)
#define GPIO_ADC3_INN2_0          (GPIO_ANALOG|GPIO_PORTF|GPIO_PIN10)
#define GPIO_ADC3_INP3_0          (GPIO_ANALOG|GPIO_PORTF|GPIO_PIN7)
#define GPIO_ADC3_INN3_0          (GPIO_ANALOG|GPIO_PORTF|GPIO_PIN8)
#define GPIO_ADC3_INP4_0          (GPIO_ANALOG|GPIO_PORTF|GPIO_PIN5)
#define GPIO_ADC3_INN4_0          (GPIO_ANALOG|GPIO_PORTF|GPIO_PIN6)
#define GPIO_ADC3_INP5_0          (GPIO_ANALOG|GPIO_PORTF|GPIO_PIN3)
#define GPIO_ADC3_INN5_0          (GPIO_ANALOG|GPIO_PORTF|GPIO_PIN4)
#define GPIO_ADC3_INP6_0          (GPIO_ANALOG|GPIO_PORTF|GPIO_PIN10)
#define GPIO_ADC3_INP7_0          (GPIO_ANALOG|GPIO_PORTF|GPIO_PIN8)
#define GPIO_ADC3_INP8_0          (GPIO_ANALOG|GPIO_PORTF|GPIO_PIN6)
#define GPIO_ADC3_INP9_0          (GPIO_ANALOG|GPIO_PORTF|GPIO_PIN4)
#define GPIO_ADC3_INP13_0         (GPIO_ANALOG|GPIO_PORTH|GPIO_PIN2)
#define GPIO_ADC3_INN13_0         (GPIO_ANALOG|GPIO_PORTH|GPIO_PIN3)
#define GPIO_ADC3_INP14_0         (GPIO_ANALOG|GPIO_PORTH|GPIO_PIN3)
#define GPIO_ADC3_INN14_0         (GPIO_ANALOG|GPIO_PORTH|GPIO_PIN4)
#define GPIO_ADC3_INP15_0         (GPIO_ANALOG|GPIO_PORTH|GPIO_PIN4)
#define GPIO_ADC3_INN15_0         (GPIO_ANALOG|GPIO_PORTH|GPIO_PIN5)
#define GPIO_ADC3_INP16_0         (GPIO_ANALOG|GPIO_PORTH|GPIO_PIN5)

/* CAN */

#define GPIO_CAN1_RX_1            (GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN11)
#define GPIO_CAN1_RX_2            (GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN8)
#define GPIO_CAN1_RX_3            (GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTD|GPIO_PIN0)
#define GPIO_CAN1_RX_4            (GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTH|GPIO_PIN14)
#define GPIO_CAN1_RX_5            (GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTI|GPIO_PIN9)
#define GPIO_CAN1_RXFD_1          (GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN9)
#define GPIO_CAN1_RXFD_2          (GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTD|GPIO_PIN4)
#define GPIO_CAN1_RXFD_3          (GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTE|GPIO_PIN0)
#define GPIO_CAN1_RXFD_4          (GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTI|GPIO_PIN0)
#define GPIO_CAN1_RXFD_5          (GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTI|GPIO_PIN10)
#define GPIO_CAN1_TX_1            (GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN12)
#define GPIO_CAN1_TX_2            (GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN9)
#define GPIO_CAN1_TX_3            (GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTD|GPIO_PIN1)
#define GPIO_CAN1_TX_4            (GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTH|GPIO_PIN13)
#define GPIO_CAN1_TXFD_1          (GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN10)
#define GPIO_CAN1_TXFD_2          (GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTD|GPIO_PIN5)
#define GPIO_CAN1_TXFD_3          (GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTE|GPIO_PIN1)
#define GPIO_CAN1_TXFD_4          (GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTH|GPIO_PIN15)

#define GPIO_CAN2_RX_1            (GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN12)
#define GPIO_CAN2_RX_2            (GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN5)
#define GPIO_CAN2_RXFD_1          (GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTD|GPIO_PIN6)
#define GPIO_CAN2_RXFD_2          (GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTD|GPIO_PIN9)
#define GPIO_CAN2_TX_1            (GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN13)
#define GPIO_CAN2_TX_2            (GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN6)
#define GPIO_CAN2_TXFD_1          (GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN7)
#define GPIO_CAN2_TXFD_2          (GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTD|GPIO_PIN10)

/* Comparator (COMP) */

#define GPIO_COMP_1_OUT_1         (GPIO_ALT|GPIO_AF13|GPIO_PORTC|GPIO_PIN5)
#define GPIO_COMP_1_OUT_2         (GPIO_ALT|GPIO_AF13|GPIO_PORTE|GPIO_PIN12)
#define GPIO_COMP_2_OUT_1         (GPIO_ALT|GPIO_AF13|GPIO_PORTE|GPIO_PIN13)
#define GPIO_COMP_2_OUT_2         (GPIO_ALT|GPIO_AF13|GPIO_PORTE|GPIO_PIN8)

/* DAC */

#define GPIO_DAC1_OUT1_0          (GPIO_ANALOG|GPIO_PORTA|GPIO_PIN4)
#define GPIO_DAC1_OUT2_0          (GPIO_ANALOG|GPIO_PORTA|GPIO_PIN5)

/* Digital Camera Interface (DCMI) */

#define GPIO_DCMI_D0_1            (GPIO_ALT|GPIO_AF13|GPIO_PORTA|GPIO_PIN9)
#define GPIO_DCMI_D0_2            (GPIO_ALT|GPIO_AF13|GPIO_PORTC|GPIO_PIN6)
#define GPIO_DCMI_D0_3            (GPIO_ALT|GPIO_AF13|GPIO_PORTH|GPIO_PIN9)
#define GPIO_DCMI_D1_1            (GPIO_ALT|GPIO_AF13|GPIO_PORTA|GPIO_PIN10)
#define GPIO_DCMI_D1_2            (GPIO_ALT|GPIO_AF13|GPIO_PORTC|GPIO_PIN7)
#define GPIO_DCMI_D1_3            (GPIO_ALT|GPIO_AF13|GPIO_PORTH|GPIO_PIN10)
#define GPIO_DCMI_D2_1            (GPIO_ALT|GPIO_AF13|GPIO_PORTC|GPIO_PIN8)
#define GPIO_DCMI_D2_2            (GPIO_ALT|GPIO_AF13|GPIO_PORTE|GPIO_PIN0)
#define GPIO_DCMI_D2_3            (GPIO_ALT|GPIO_AF13|GPIO_PORTG|GPIO_PIN10)
#define GPIO_DCMI_D2_4            (GPIO_ALT|GPIO_AF13|GPIO_PORTH|GPIO_PIN11)
#define GPIO_DCMI_D3_1            (GPIO_ALT|GPIO_AF13|GPIO_PORTC|GPIO_PIN9)
#define GPIO_DCMI_D3_2            (GPIO_ALT|GPIO_AF13|GPIO_PORTE|GPIO_PIN1)
#define GPIO_DCMI_D3_3            (GPIO_ALT|GPIO_AF13|GPIO_PORTG|GPIO_PIN11)
#define GPIO_DCMI_D3_4            (GPIO_ALT|GPIO_AF13|GPIO_PORTH|GPIO_PIN12)
#define GPIO_DCMI_D4_1            (GPIO_ALT|GPIO_AF13|GPIO_PORTC|GPIO_PIN11)
#define GPIO_DCMI_D4_2            (GPIO_ALT|GPIO_AF13|GPIO_PORTE|GPIO_PIN4)
#define GPIO_DCMI_D4_3            (GPIO_ALT|GPIO_AF13|GPIO_PORTH|GPIO_PIN14)
#define GPIO_DCMI_D5_1            (GPIO_ALT|GPIO_AF13|GPIO_PORTB|GPIO_PIN6)
#define GPIO_DCMI_D5_2            (GPIO_ALT|GPIO_AF13|GPIO_PORTD|GPIO_PIN3)
#define GPIO_DCMI_D5_3            (GPIO_ALT|GPIO_AF13|GPIO_PORTI|GPIO_PIN4)
#define GPIO_DCMI_D6_1            (GPIO_ALT|GPIO_AF13|GPIO_PORTB|GPIO_PIN8)
#define GPIO_DCMI_D6_2            (GPIO_ALT|GPIO_AF13|GPIO_PORTE|GPIO_PIN5)
#define GPIO_DCMI_D6_3            (GPIO_ALT|GPIO_AF13|GPIO_PORTI|GPIO_PIN6)
#define GPIO_DCMI_D7_1            (GPIO_ALT|GPIO_AF13|GPIO_PORTB|GPIO_PIN9)
#define GPIO_DCMI_D7_2            (GPIO_ALT|GPIO_AF13|GPIO_PORTE|GPIO_PIN6)
#define GPIO_DCMI_D7_3            (GPIO_ALT|GPIO_AF13|GPIO_PORTI|GPIO_PIN7)
#define GPIO_DCMI_D8_1            (GPIO_ALT|GPIO_AF13|GPIO_PORTC|GPIO_PIN10)
#define GPIO_DCMI_D8_2            (GPIO_ALT|GPIO_AF13|GPIO_PORTH|GPIO_PIN6)
#define GPIO_DCMI_D8_3            (GPIO_ALT|GPIO_AF13|GPIO_PORTI|GPIO_PIN1)
#define GPIO_DCMI_D9_1            (GPIO_ALT|GPIO_AF13|GPIO_PORTC|GPIO_PIN12)
#define GPIO_DCMI_D9_2            (GPIO_ALT|GPIO_AF13|GPIO_PORTH|GPIO_PIN7)
#define GPIO_DCMI_D9_3            (GPIO_ALT|GPIO_AF13|GPIO_PORTI|GPIO_PIN2)
#define GPIO_DCMI_D10_1           (GPIO_ALT|GPIO_AF13|GPIO_PORTB|GPIO_PIN5)
#define GPIO_DCMI_D10_2           (GPIO_ALT|GPIO_AF13|GPIO_PORTD|GPIO_PIN6)
#define GPIO_DCMI_D10_3           (GPIO_ALT|GPIO_AF13|GPIO_PORTI|GPIO_PIN3)
#define GPIO_DCMI_D11_1           (GPIO_ALT|GPIO_AF13|GPIO_PORTD|GPIO_PIN2)
#define GPIO_DCMI_D11_2           (GPIO_ALT|GPIO_AF13|GPIO_PORTF|GPIO_PIN10)
#define GPIO_DCMI_D11_3           (GPIO_ALT|GPIO_AF13|GPIO_PORTH|GPIO_PIN15)
#define GPIO_DCMI_D12_1           (GPIO_ALT|GPIO_AF13|GPIO_PORTF|GPIO_PIN11)
#define GPIO_DCMI_D12_2           (GPIO_ALT|GPIO_AF13|GPIO_PORTG|GPIO_PIN6)
#define GPIO_DCMI_D13_1           (GPIO_ALT|GPIO_AF13|GPIO_PORTG|GPIO_PIN15)
#define GPIO_DCMI_D13_2           (GPIO_ALT|GPIO_AF13|GPIO_PORTG|GPIO_PIN7)
#define GPIO_DCMI_D13_3           (GPIO_ALT|GPIO_AF13|GPIO_PORTI|GPIO_PIN0)
#define GPIO_DCMI_HSYNC_1         (GPIO_ALT|GPIO_AF13|GPIO_PORTA|GPIO_PIN4)
#define GPIO_DCMI_HSYNC_2         (GPIO_ALT|GPIO_AF13|GPIO_PORTH|GPIO_PIN8)
#define GPIO_DCMI_PIXCLK_0        (GPIO_ALT|GPIO_AF13|GPIO_PORTA|GPIO_PIN6)
#define GPIO_DCMI_VSYNC_1         (GPIO_ALT|GPIO_AF13|GPIO_PORTB|GPIO_PIN7)
#define GPIO_DCMI_VSYNC_2         (GPIO_ALT|GPIO_AF13|GPIO_PORTG|GPIO_PIN9)
#define GPIO_DCMI_VSYNC_3         (GPIO_ALT|GPIO_AF13|GPIO_PORTI|GPIO_PIN5)

/* Digital filter for sigma delta modulators (DFSDM) */

#define GPIO_DFSDM_CKIN0_0        (GPIO_ALT|GPIO_AF3|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN0)
#define GPIO_DFSDM_CKIN1_1        (GPIO_ALT|GPIO_AF3|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN2)
#define GPIO_DFSDM_CKIN1_2        (GPIO_ALT|GPIO_AF4|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN2)
#define GPIO_DFSDM_CKIN1_3        (GPIO_ALT|GPIO_AF6|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN13)
#define GPIO_DFSDM_CKIN1_4        (GPIO_ALT|GPIO_AF6|GPIO_PUSHPULL|GPIO_PORTD|GPIO_PIN7)
#define GPIO_DFSDM_CKIN2_1        (GPIO_ALT|GPIO_AF3|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN4)
#define GPIO_DFSDM_CKIN2_2        (GPIO_ALT|GPIO_AF3|GPIO_PUSHPULL|GPIO_PORTE|GPIO_PIN8)
#define GPIO_DFSDM_CKIN2_3        (GPIO_ALT|GPIO_AF6|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN15)
#define GPIO_DFSDM_CKIN3_1        (GPIO_ALT|GPIO_AF3|GPIO_PUSHPULL|GPIO_PORTD|GPIO_PIN8)
#define GPIO_DFSDM_CKIN3_2        (GPIO_ALT|GPIO_AF3|GPIO_PUSHPULL|GPIO_PORTE|GPIO_PIN5)
#define GPIO_DFSDM_CKIN3_3        (GPIO_ALT|GPIO_AF4|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN6)
#define GPIO_DFSDM_CKIN4_1        (GPIO_ALT|GPIO_AF3|GPIO_PUSHPULL|GPIO_PORTD|GPIO_PIN6)
#define GPIO_DFSDM_CKIN4_2        (GPIO_ALT|GPIO_AF3|GPIO_PUSHPULL|GPIO_PORTE|GPIO_PIN11)
#define GPIO_DFSDM_CKIN4_3        (GPIO_ALT|GPIO_AF4|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN1)
#define GPIO_DFSDM_CKIN5_1        (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN7)
#define GPIO_DFSDM_CKIN5_2        (GPIO_ALT|GPIO_AF3|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN10)
#define GPIO_DFSDM_CKIN5_3        (GPIO_ALT|GPIO_AF3|GPIO_PUSHPULL|GPIO_PORTE|GPIO_PIN13)
#define GPIO_DFSDM_CKIN6_1        (GPIO_ALT|GPIO_AF3|GPIO_PUSHPULL|GPIO_PORTD|GPIO_PIN0)
#define GPIO_DFSDM_CKIN6_2        (GPIO_ALT|GPIO_AF3|GPIO_PUSHPULL|GPIO_PORTF|GPIO_PIN14)
#define GPIO_DFSDM_CKIN7_1        (GPIO_ALT|GPIO_AF3|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN8)
#define GPIO_DFSDM_CKIN7_2        (GPIO_ALT|GPIO_AF6|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN11)
#define GPIO_DFSDM_CKOUT_1        (GPIO_ALT|GPIO_AF3|GPIO_PUSHPULL|GPIO_PORTD|GPIO_PIN10)
#define GPIO_DFSDM_CKOUT_2        (GPIO_ALT|GPIO_AF3|GPIO_PUSHPULL|GPIO_PORTD|GPIO_PIN3)
#define GPIO_DFSDM_CKOUT_3        (GPIO_ALT|GPIO_AF3|GPIO_PUSHPULL|GPIO_PORTE|GPIO_PIN9)
#define GPIO_DFSDM_CKOUT_4        (GPIO_ALT|GPIO_AF6|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN0)
#define GPIO_DFSDM_CKOUT_5        (GPIO_ALT|GPIO_AF6|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN2)
#define GPIO_DFSDM_DATIN0_0       (GPIO_ALT|GPIO_AF3|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN1)
#define GPIO_DFSDM_DATIN1_1       (GPIO_ALT|GPIO_AF3|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN3)
#define GPIO_DFSDM_DATIN1_2       (GPIO_ALT|GPIO_AF4|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTD|GPIO_PIN6)
#define GPIO_DFSDM_DATIN1_3       (GPIO_ALT|GPIO_AF6|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN1)
#define GPIO_DFSDM_DATIN1_4       (GPIO_ALT|GPIO_AF6|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN12)
#define GPIO_DFSDM_DATIN2_1       (GPIO_ALT|GPIO_AF3|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN5)
#define GPIO_DFSDM_DATIN2_2       (GPIO_ALT|GPIO_AF3|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTE|GPIO_PIN7)
#define GPIO_DFSDM_DATIN2_3       (GPIO_ALT|GPIO_AF6|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN14)
#define GPIO_DFSDM_DATIN3_1       (GPIO_ALT|GPIO_AF3|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTD|GPIO_PIN9)
#define GPIO_DFSDM_DATIN3_2       (GPIO_ALT|GPIO_AF3|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTE|GPIO_PIN4)
#define GPIO_DFSDM_DATIN3_3       (GPIO_ALT|GPIO_AF4|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN7)
#define GPIO_DFSDM_DATIN4_1       (GPIO_ALT|GPIO_AF3|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTD|GPIO_PIN7)
#define GPIO_DFSDM_DATIN4_2       (GPIO_ALT|GPIO_AF3|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTE|GPIO_PIN10)
#define GPIO_DFSDM_DATIN4_3       (GPIO_ALT|GPIO_AF6|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN0)
#define GPIO_DFSDM_DATIN5_1       (GPIO_ALT|GPIO_AF11|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN6)
#define GPIO_DFSDM_DATIN5_2       (GPIO_ALT|GPIO_AF3|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN11)
#define GPIO_DFSDM_DATIN5_3       (GPIO_ALT|GPIO_AF3|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTE|GPIO_PIN12)
#define GPIO_DFSDM_DATIN6_1       (GPIO_ALT|GPIO_AF3|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTD|GPIO_PIN1)
#define GPIO_DFSDM_DATIN6_2       (GPIO_ALT|GPIO_AF3|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTF|GPIO_PIN13)
#define GPIO_DFSDM_DATIN7_1       (GPIO_ALT|GPIO_AF3|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN9)
#define GPIO_DFSDM_DATIN7_2       (GPIO_ALT|GPIO_AF6|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN10)

/* Ethernet MAC */

#define GPIO_ETH_MDC_0            (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN1)
#define GPIO_ETH_MDIO_0           (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN2)
#define GPIO_ETH_MII_COL_1        (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN3)
#define GPIO_ETH_MII_COL_2        (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTH|GPIO_PIN3)
#define GPIO_ETH_MII_CRS_1        (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN0)
#define GPIO_ETH_MII_CRS_2        (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTH|GPIO_PIN2)
#define GPIO_ETH_MII_RX_CLK_0     (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN1)
#define GPIO_ETH_MII_RX_DV_0      (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN7)
#define GPIO_ETH_MII_RX_ER_1      (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN10)
#define GPIO_ETH_MII_RX_ER_2      (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTI|GPIO_PIN10)
#define GPIO_ETH_MII_RXD0_0       (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN4)
#define GPIO_ETH_MII_RXD1_0       (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN5)
#define GPIO_ETH_MII_RXD2_1       (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN0)
#define GPIO_ETH_MII_RXD2_2       (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTH|GPIO_PIN6)
#define GPIO_ETH_MII_RXD3_1       (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN1)
#define GPIO_ETH_MII_RXD3_2       (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTH|GPIO_PIN7)
#define GPIO_ETH_MII_TX_CLK_0     (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN3)
#define GPIO_ETH_MII_TX_EN_1      (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN11)
#define GPIO_ETH_MII_TX_EN_2      (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTG|GPIO_PIN11)
#define GPIO_ETH_MII_TXD0_1       (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN12)
#define GPIO_ETH_MII_TXD0_2       (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTG|GPIO_PIN13)
#define GPIO_ETH_MII_TXD1_1       (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN13)
#define GPIO_ETH_MII_TXD1_2       (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTG|GPIO_PIN12)
#define GPIO_ETH_MII_TXD1_3       (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTG|GPIO_PIN14)
#define GPIO_ETH_MII_TXD2_0       (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN2)
#define GPIO_ETH_MII_TXD3_1       (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN8)
#define GPIO_ETH_MII_TXD3_2       (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTE|GPIO_PIN2)
#define GPIO_ETH_PPS_OUT_1        (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN5)
#define GPIO_ETH_PPS_OUT_2        (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTG|GPIO_PIN8)
#define GPIO_ETH_RMII_CRS_DV_0    (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN7)
#define GPIO_ETH_RMII_REF_CLK_0   (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN1)
#define GPIO_ETH_RMII_RXD0_0      (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN4)
#define GPIO_ETH_RMII_RXD1_0      (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN5)
#define GPIO_ETH_RMII_TX_EN_1     (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN11)
#define GPIO_ETH_RMII_TX_EN_2     (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTG|GPIO_PIN11)
#define GPIO_ETH_RMII_TXD0_1      (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN12)
#define GPIO_ETH_RMII_TXD0_2      (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTG|GPIO_PIN13)
#define GPIO_ETH_RMII_TXD1_1      (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN13)
#define GPIO_ETH_RMII_TXD1_2      (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTG|GPIO_PIN12)
#define GPIO_ETH_RMII_TXD1_3      (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTG|GPIO_PIN14)
#define GPIO_ETH_TX_ER_1          (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN9)
#define GPIO_ETH_TX_ER_2          (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN2)
#define GPIO_ETH_TX_ER_3          (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTI|GPIO_PIN12)

/* Flexible memory controller (FMC) */

#define GPIO_FMC_A0_0             (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTF|GPIO_PIN0)
#define GPIO_FMC_A1_0             (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTF|GPIO_PIN1)
#define GPIO_FMC_A2_0             (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTF|GPIO_PIN2)
#define GPIO_FMC_A3_0             (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTF|GPIO_PIN3)
#define GPIO_FMC_A4_0             (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTF|GPIO_PIN4)
#define GPIO_FMC_A5_0             (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTF|GPIO_PIN5)
#define GPIO_FMC_A6_0             (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTF|GPIO_PIN12)
#define GPIO_FMC_A7_0             (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTF|GPIO_PIN13)
#define GPIO_FMC_A8_0             (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTF|GPIO_PIN14)
#define GPIO_FMC_A9_0             (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTF|GPIO_PIN15)
#define GPIO_FMC_A10_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTG|GPIO_PIN0)
#define GPIO_FMC_A11_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTG|GPIO_PIN1)
#define GPIO_FMC_A12_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTG|GPIO_PIN2)
#define GPIO_FMC_A13_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTG|GPIO_PIN3)
#define GPIO_FMC_A14_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTG|GPIO_PIN4)
#define GPIO_FMC_A15_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTG|GPIO_PIN5)
#define GPIO_FMC_A16_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTD|GPIO_PIN11)
#define GPIO_FMC_A17_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTD|GPIO_PIN12)
#define GPIO_FMC_A18_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTD|GPIO_PIN13)
#define GPIO_FMC_A19_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTE|GPIO_PIN3)
#define GPIO_FMC_A20_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTE|GPIO_PIN4)
#define GPIO_FMC_A21_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTE|GPIO_PIN5)
#define GPIO_FMC_A22_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTE|GPIO_PIN6)
#define GPIO_FMC_A23_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTE|GPIO_PIN2)
#define GPIO_FMC_A24_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTG|GPIO_PIN13)
#define GPIO_FMC_A25_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTG|GPIO_PIN14)
#define GPIO_FMC_BA0_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTG|GPIO_PIN4)
#define GPIO_FMC_BA1_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTG|GPIO_PIN5)
#define GPIO_FMC_CLK_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTD|GPIO_PIN3)
#define GPIO_FMC_D0_0             (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTD|GPIO_PIN14)
#define GPIO_FMC_D1_0             (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTD|GPIO_PIN15)
#define GPIO_FMC_D2_0             (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTD|GPIO_PIN0)
#define GPIO_FMC_D3_0             (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTD|GPIO_PIN1)
#define GPIO_FMC_D4_0             (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTE|GPIO_PIN7)
#define GPIO_FMC_D5_0             (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTE|GPIO_PIN8)
#define GPIO_FMC_D6_0             (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTE|GPIO_PIN9)
#define GPIO_FMC_D7_0             (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTE|GPIO_PIN10)
#define GPIO_FMC_D8_0             (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTE|GPIO_PIN11)
#define GPIO_FMC_D9_0             (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTE|GPIO_PIN12)
#define GPIO_FMC_D10_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTE|GPIO_PIN13)
#define GPIO_FMC_D11_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTE|GPIO_PIN14)
#define GPIO_FMC_D12_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTE|GPIO_PIN15)
#define GPIO_FMC_D13_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTD|GPIO_PIN8)
#define GPIO_FMC_D14_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTD|GPIO_PIN9)
#define GPIO_FMC_D15_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTD|GPIO_PIN10)
#define GPIO_FMC_D16_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTH|GPIO_PIN8)
#define GPIO_FMC_D17_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTH|GPIO_PIN9)
#define GPIO_FMC_D18_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTH|GPIO_PIN10)
#define GPIO_FMC_D19_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTH|GPIO_PIN11)
#define GPIO_FMC_D20_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTH|GPIO_PIN12)
#define GPIO_FMC_D21_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTH|GPIO_PIN13)
#define GPIO_FMC_D22_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTH|GPIO_PIN14)
#define GPIO_FMC_D23_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTH|GPIO_PIN15)
#define GPIO_FMC_D24_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTI|GPIO_PIN0)
#define GPIO_FMC_D25_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTI|GPIO_PIN1)
#define GPIO_FMC_D26_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTI|GPIO_PIN2)
#define GPIO_FMC_D27_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTI|GPIO_PIN3)
#define GPIO_FMC_D28_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTI|GPIO_PIN6)
#define GPIO_FMC_D29_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTI|GPIO_PIN7)
#define GPIO_FMC_D30_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTI|GPIO_PIN9)
#define GPIO_FMC_D31_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTI|GPIO_PIN10)
#define GPIO_FMC_DA0_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTD|GPIO_PIN14)
#define GPIO_FMC_DA1_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTD|GPIO_PIN15)
#define GPIO_FMC_DA2_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTD|GPIO_PIN0)
#define GPIO_FMC_DA3_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTD|GPIO_PIN1)
#define GPIO_FMC_DA4_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTE|GPIO_PIN7)
#define GPIO_FMC_DA5_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTE|GPIO_PIN8)
#define GPIO_FMC_DA6_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTE|GPIO_PIN9)
#define GPIO_FMC_DA7_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTE|GPIO_PIN10)
#define GPIO_FMC_DA8_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTE|GPIO_PIN11)
#define GPIO_FMC_DA9_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTE|GPIO_PIN12)
#define GPIO_FMC_DA10_0           (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTE|GPIO_PIN13)
#define GPIO_FMC_DA11_0           (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTE|GPIO_PIN14)
#define GPIO_FMC_DA12_0           (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTE|GPIO_PIN15)
#define GPIO_FMC_DA13_0           (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTD|GPIO_PIN8)
#define GPIO_FMC_DA14_0           (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTD|GPIO_PIN9)
#define GPIO_FMC_DA15_0           (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTD|GPIO_PIN10)
#define GPIO_FMC_INT_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTG|GPIO_PIN7)
#define GPIO_FMC_NBL0_0           (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTE|GPIO_PIN0)
#define GPIO_FMC_NBL1_0           (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTE|GPIO_PIN1)
#define GPIO_FMC_NBL2_0           (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTI|GPIO_PIN4)
#define GPIO_FMC_NBL3_0           (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTI|GPIO_PIN5)
#define GPIO_FMC_NCE_1            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTG|GPIO_PIN9)
#define GPIO_FMC_NCE_2            (GPIO_ALT|GPIO_PULLUP|GPIO_AF9|GPIO_PORTC|GPIO_PIN8)
#define GPIO_FMC_NE1_1            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTD|GPIO_PIN7)
#define GPIO_FMC_NE1_2            (GPIO_ALT|GPIO_PULLUP|GPIO_AF9|GPIO_PORTC|GPIO_PIN7)
#define GPIO_FMC_NE2_1            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTG|GPIO_PIN9)
#define GPIO_FMC_NE2_2            (GPIO_ALT|GPIO_PULLUP|GPIO_AF9|GPIO_PORTC|GPIO_PIN8)
#define GPIO_FMC_NE3_1            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTG|GPIO_PIN10)
#define GPIO_FMC_NE3_2            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTG|GPIO_PIN6)
#define GPIO_FMC_NE4_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTG|GPIO_PIN12)
#define GPIO_FMC_NL_0             (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTB|GPIO_PIN7)
#define GPIO_FMC_NOE_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTD|GPIO_PIN4)
#define GPIO_FMC_NWAIT_1          (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTD|GPIO_PIN6)
#define GPIO_FMC_NWAIT_2          (GPIO_ALT|GPIO_PULLUP|GPIO_AF9|GPIO_PORTC|GPIO_PIN6)
#define GPIO_FMC_NWE_0            (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTD|GPIO_PIN5)
#define GPIO_FMC_SDCKE0_1         (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTC|GPIO_PIN3)
#define GPIO_FMC_SDCKE0_2         (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTC|GPIO_PIN5)
#define GPIO_FMC_SDCKE0_3         (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTH|GPIO_PIN2)
#define GPIO_FMC_SDCKE1_1         (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTB|GPIO_PIN5)
#define GPIO_FMC_SDCKE1_2         (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTH|GPIO_PIN7)
#define GPIO_FMC_SDCLK_0          (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTG|GPIO_PIN8)
#define GPIO_FMC_SDNCAS_0         (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTG|GPIO_PIN15)
#define GPIO_FMC_SDNE0_1          (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTC|GPIO_PIN2)
#define GPIO_FMC_SDNE0_2          (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTC|GPIO_PIN4)
#define GPIO_FMC_SDNE0_3          (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTH|GPIO_PIN3)
#define GPIO_FMC_SDNE1_1          (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTB|GPIO_PIN6)
#define GPIO_FMC_SDNE1_2          (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTH|GPIO_PIN6)
#define GPIO_FMC_SDNRAS_0         (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTF|GPIO_PIN11)
#define GPIO_FMC_SDNWE_1          (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTA|GPIO_PIN7)
#define GPIO_FMC_SDNWE_2          (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTC|GPIO_PIN0)
#define GPIO_FMC_SDNWE_3          (GPIO_ALT|GPIO_PULLUP|GPIO_AF12|GPIO_PORTH|GPIO_PIN5)

/* HDMI-CEC Controller */

#define GPIO_HDMI_CEC_1           (GPIO_ALT|GPIO_AF4|GPIO_PORTA|GPIO_PIN15)
#define GPIO_HDMI_CEC_2           (GPIO_ALT|GPIO_AF5|GPIO_PORTB|GPIO_PIN6)

#define GPIO_HDMI_TIM1_BKIN       (GPIO_ALT|GPIO_AF5|GPIO_PORTE|GPIO_PIN15) /* Typo in datasheet? */

/* High-Resolution Timer (HRTIM) */

#define GPIO_HRTIM_CHA1_0         (GPIO_ALT|GPIO_AF1|GPIO_PORTC|GPIO_PIN6)
#define GPIO_HRTIM_CHA2_0         (GPIO_ALT|GPIO_AF1|GPIO_PORTC|GPIO_PIN7)
#define GPIO_HRTIM_CHB1_0         (GPIO_ALT|GPIO_AF1|GPIO_PORTC|GPIO_PIN8)
#define GPIO_HRTIM_CHB2_0         (GPIO_ALT|GPIO_AF2|GPIO_PORTA|GPIO_PIN8)
#define GPIO_HRTIM_CHC1_0         (GPIO_ALT|GPIO_AF2|GPIO_PORTA|GPIO_PIN9)
#define GPIO_HRTIM_CHC2_0         (GPIO_ALT|GPIO_AF2|GPIO_PORTA|GPIO_PIN10)
#define GPIO_HRTIM_CHD1_0         (GPIO_ALT|GPIO_AF2|GPIO_PORTA|GPIO_PIN11)
#define GPIO_HRTIM_CHD2_0         (GPIO_ALT|GPIO_AF2|GPIO_PORTA|GPIO_PIN12)
#define GPIO_HRTIM_CHE1_0         (GPIO_ALT|GPIO_AF2|GPIO_PORTG|GPIO_PIN6)
#define GPIO_HRTIM_CHE2_0         (GPIO_ALT|GPIO_AF2|GPIO_PORTG|GPIO_PIN7)
#define GPIO_HRTIM_EEV1_0         (GPIO_ALT|GPIO_AF2|GPIO_PORTC|GPIO_PIN10)
#define GPIO_HRTIM_EEV10_0        (GPIO_ALT|GPIO_AF2|GPIO_PORTG|GPIO_PIN13)
#define GPIO_HRTIM_EEV2_0         (GPIO_ALT|GPIO_AF2|GPIO_PORTC|GPIO_PIN12)
#define GPIO_HRTIM_EEV3_0         (GPIO_ALT|GPIO_AF2|GPIO_PORTD|GPIO_PIN5)
#define GPIO_HRTIM_EEV4_0         (GPIO_ALT|GPIO_AF2|GPIO_PORTG|GPIO_PIN11)
#define GPIO_HRTIM_EEV5_0         (GPIO_ALT|GPIO_AF2|GPIO_PORTG|GPIO_PIN12)
#define GPIO_HRTIM_EEV6_0         (GPIO_ALT|GPIO_AF3|GPIO_PORTB|GPIO_PIN4)
#define GPIO_HRTIM_EEV7_0         (GPIO_ALT|GPIO_AF3|GPIO_PORTB|GPIO_PIN5)
#define GPIO_HRTIM_EEV8_0         (GPIO_ALT|GPIO_AF3|GPIO_PORTB|GPIO_PIN6)
#define GPIO_HRTIM_EEV9_0         (GPIO_ALT|GPIO_AF3|GPIO_PORTB|GPIO_PIN7)
#define GPIO_HRTIM_FLT1_0         (GPIO_ALT|GPIO_AF2|GPIO_PORTA|GPIO_PIN15)
#define GPIO_HRTIM_FLT2_0         (GPIO_ALT|GPIO_AF2|GPIO_PORTC|GPIO_PIN11)
#define GPIO_HRTIM_FLT3_0         (GPIO_ALT|GPIO_AF2|GPIO_PORTD|GPIO_PIN4)
#define GPIO_HRTIM_FLT4_0         (GPIO_ALT|GPIO_AF2|GPIO_PORTB|GPIO_PIN3)
#define GPIO_HRTIM_FLT5_0         (GPIO_ALT|GPIO_AF2|GPIO_PORTG|GPIO_PIN10)
#define GPIO_HRTIM_SCIN_1         (GPIO_ALT|GPIO_AF2|GPIO_PORTB|GPIO_PIN11)
#define GPIO_HRTIM_SCIN_2         (GPIO_ALT|GPIO_AF3|GPIO_PORTE|GPIO_PIN0)
#define GPIO_HRTIM_SCOUT_1        (GPIO_ALT|GPIO_AF2|GPIO_PORTB|GPIO_PIN10)
#define GPIO_HRTIM_SCOUT_2        (GPIO_ALT|GPIO_AF3|GPIO_PORTE|GPIO_PIN1)

/* I2C */

#define GPIO_I2C1_SCL_1           (GPIO_ALT|GPIO_AF4|GPIO_OPENDRAIN|GPIO_PORTB|GPIO_PIN6)
#define GPIO_I2C1_SCL_2           (GPIO_ALT|GPIO_AF4|GPIO_OPENDRAIN|GPIO_PORTB|GPIO_PIN8)
#define GPIO_I2C1_SDA_1           (GPIO_ALT|GPIO_AF4|GPIO_OPENDRAIN|GPIO_PORTB|GPIO_PIN7)
#define GPIO_I2C1_SDA_2           (GPIO_ALT|GPIO_AF4|GPIO_OPENDRAIN|GPIO_PORTB|GPIO_PIN9)
#define GPIO_I2C1_SMBA_0          (GPIO_ALT|GPIO_AF4|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN5)

#define GPIO_I2C2_SCL_1           (GPIO_ALT|GPIO_AF4|GPIO_OPENDRAIN|GPIO_PORTB|GPIO_PIN10)
#define GPIO_I2C2_SCL_2           (GPIO_ALT|GPIO_AF4|GPIO_OPENDRAIN|GPIO_PORTF|GPIO_PIN1)
#define GPIO_I2C2_SCL_3           (GPIO_ALT|GPIO_AF4|GPIO_OPENDRAIN|GPIO_PORTH|GPIO_PIN4)
#define GPIO_I2C2_SDA_1           (GPIO_ALT|GPIO_AF4|GPIO_OPENDRAIN|GPIO_PORTB|GPIO_PIN11)
#define GPIO_I2C2_SDA_2           (GPIO_ALT|GPIO_AF4|GPIO_OPENDRAIN|GPIO_PORTF|GPIO_PIN0)
#define GPIO_I2C2_SDA_3           (GPIO_ALT|GPIO_AF4|GPIO_OPENDRAIN|GPIO_PORTH|GPIO_PIN5)
#define GPIO_I2C2_SMBA_1          (GPIO_ALT|GPIO_AF4|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN12)
#define GPIO_I2C2_SMBA_2          (GPIO_ALT|GPIO_AF4|GPIO_PUSHPULL|GPIO_PORTF|GPIO_PIN2)
#define GPIO_I2C2_SMBA_3          (GPIO_ALT|GPIO_AF4|GPIO_PUSHPULL|GPIO_PORTH|GPIO_PIN6)

#define GPIO_I2C3_SCL_1           (GPIO_ALT|GPIO_AF4|GPIO_OPENDRAIN|GPIO_PORTA|GPIO_PIN8)
#define GPIO_I2C3_SCL_2           (GPIO_ALT|GPIO_AF4|GPIO_OPENDRAIN|GPIO_PORTH|GPIO_PIN7)
#define GPIO_I2C3_SDA_1           (GPIO_ALT|GPIO_AF4|GPIO_OPENDRAIN|GPIO_PORTC|GPIO_PIN9)
#define GPIO_I2C3_SDA_2           (GPIO_ALT|GPIO_AF4|GPIO_OPENDRAIN|GPIO_PORTH|GPIO_PIN8)
#define GPIO_I2C3_SMBA_1          (GPIO_ALT|GPIO_AF4|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN9)
#define GPIO_I2C3_SMBA_2          (GPIO_ALT|GPIO_AF4|GPIO_PUSHPULL|GPIO_PORTH|GPIO_PIN9)

#define GPIO_I2C4_SCL_1           (GPIO_ALT|GPIO_AF4|GPIO_OPENDRAIN|GPIO_PORTD|GPIO_PIN12)
#define GPIO_I2C4_SCL_2           (GPIO_ALT|GPIO_AF4|GPIO_OPENDRAIN|GPIO_PORTF|GPIO_PIN14)
#define GPIO_I2C4_SCL_3           (GPIO_ALT|GPIO_AF4|GPIO_OPENDRAIN|GPIO_PORTH|GPIO_PIN11)
#define GPIO_I2C4_SCL_4           (GPIO_ALT|GPIO_AF6|GPIO_OPENDRAIN|GPIO_PORTB|GPIO_PIN6)
#define GPIO_I2C4_SCL_5           (GPIO_ALT|GPIO_AF6|GPIO_OPENDRAIN|GPIO_PORTB|GPIO_PIN8)
#define GPIO_I2C4_SDA_1           (GPIO_ALT|GPIO_AF4|GPIO_OPENDRAIN|GPIO_PORTD|GPIO_PIN13)
#define GPIO_I2C4_SDA_2           (GPIO_ALT|GPIO_AF4|GPIO_OPENDRAIN|GPIO_PORTF|GPIO_PIN15)
#define GPIO_I2C4_SDA_3           (GPIO_ALT|GPIO_AF4|GPIO_OPENDRAIN|GPIO_PORTH|GPIO_PIN12)
#define GPIO_I2C4_SDA_4           (GPIO_ALT|GPIO_AF6|GPIO_OPENDRAIN|GPIO_PORTB|GPIO_PIN7)
#define GPIO_I2C4_SDA_5           (GPIO_ALT|GPIO_AF6|GPIO_OPENDRAIN|GPIO_PORTB|GPIO_PIN9)
#define GPIO_I2C4_SMBA_1          (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN9)
#define GPIO_I2C4_SMBA_2          (GPIO_ALT|GPIO_AF4|GPIO_PUSHPULL|GPIO_PORTD|GPIO_PIN11)
#define GPIO_I2C4_SMBA_3          (GPIO_ALT|GPIO_AF4|GPIO_PUSHPULL|GPIO_PORTF|GPIO_PIN13)
#define GPIO_I2C4_SMBA_4          (GPIO_ALT|GPIO_AF4|GPIO_PUSHPULL|GPIO_PORTH|GPIO_PIN10)
#define GPIO_I2C4_SMBA_5          (GPIO_ALT|GPIO_AF6|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN5)

/* I2S */

#define GPIO_I2S_CKIN_0           (GPIO_ALT|GPIO_AF5|GPIO_PORTC|GPIO_PIN9)

#define GPIO_I2S1_CK_1            (GPIO_ALT|GPIO_AF5|GPIO_PORTA|GPIO_PIN5)
#define GPIO_I2S1_CK_2            (GPIO_ALT|GPIO_AF5|GPIO_PORTB|GPIO_PIN3)
#define GPIO_I2S1_CK_3            (GPIO_ALT|GPIO_AF5|GPIO_PORTG|GPIO_PIN11)
#define GPIO_I2S1_MCK_0           (GPIO_ALT|GPIO_AF5|GPIO_PORTC|GPIO_PIN4)
#define GPIO_I2S1_SDI_1           (GPIO_ALT|GPIO_AF5|GPIO_PORTA|GPIO_PIN6)
#define GPIO_I2S1_SDI_2           (GPIO_ALT|GPIO_AF5|GPIO_PORTB|GPIO_PIN4)
#define GPIO_I2S1_SDI_3           (GPIO_ALT|GPIO_AF5|GPIO_PORTG|GPIO_PIN9)
#define GPIO_I2S1_SDO_1           (GPIO_ALT|GPIO_AF5|GPIO_PORTA|GPIO_PIN7)
#define GPIO_I2S1_SDO_2           (GPIO_ALT|GPIO_AF5|GPIO_PORTB|GPIO_PIN5)
#define GPIO_I2S1_SDO_3           (GPIO_ALT|GPIO_AF5|GPIO_PORTD|GPIO_PIN7)
#define GPIO_I2S1_WS_1            (GPIO_ALT|GPIO_AF5|GPIO_PORTA|GPIO_PIN15)
#define GPIO_I2S1_WS_2            (GPIO_ALT|GPIO_AF5|GPIO_PORTA|GPIO_PIN4)
#define GPIO_I2S1_WS_3            (GPIO_ALT|GPIO_AF5|GPIO_PORTG|GPIO_PIN10)

#define GPIO_I2S2_CK_1            (GPIO_ALT|GPIO_AF5|GPIO_PORTA|GPIO_PIN12)
#define GPIO_I2S2_CK_2            (GPIO_ALT|GPIO_AF5|GPIO_PORTA|GPIO_PIN9)
#define GPIO_I2S2_CK_3            (GPIO_ALT|GPIO_AF5|GPIO_PORTB|GPIO_PIN10)
#define GPIO_I2S2_CK_4            (GPIO_ALT|GPIO_AF5|GPIO_PORTB|GPIO_PIN13)
#define GPIO_I2S2_CK_5            (GPIO_ALT|GPIO_AF5|GPIO_PORTD|GPIO_PIN3)
#define GPIO_I2S2_CK_6            (GPIO_ALT|GPIO_AF5|GPIO_PORTI|GPIO_PIN1)
#define GPIO_I2S2_MCK_0           (GPIO_ALT|GPIO_AF5|GPIO_PORTC|GPIO_PIN6)
#define GPIO_I2S2_SDI_1           (GPIO_ALT|GPIO_AF5|GPIO_PORTB|GPIO_PIN14)
#define GPIO_I2S2_SDI_2           (GPIO_ALT|GPIO_AF5|GPIO_PORTC|GPIO_PIN2)
#define GPIO_I2S2_SDI_3           (GPIO_ALT|GPIO_AF5|GPIO_PORTI|GPIO_PIN2)
#define GPIO_I2S2_SDO_1           (GPIO_ALT|GPIO_AF5|GPIO_PORTB|GPIO_PIN15)
#define GPIO_I2S2_SDO_2           (GPIO_ALT|GPIO_AF5|GPIO_PORTC|GPIO_PIN1)
#define GPIO_I2S2_SDO_3           (GPIO_ALT|GPIO_AF5|GPIO_PORTC|GPIO_PIN3)
#define GPIO_I2S2_SDO_4           (GPIO_ALT|GPIO_AF5|GPIO_PORTI|GPIO_PIN3)
#define GPIO_I2S2_WS_1            (GPIO_ALT|GPIO_AF5|GPIO_PORTA|GPIO_PIN11)
#define GPIO_I2S2_WS_2            (GPIO_ALT|GPIO_AF5|GPIO_PORTB|GPIO_PIN12)
#define GPIO_I2S2_WS_3            (GPIO_ALT|GPIO_AF5|GPIO_PORTB|GPIO_PIN9)
#define GPIO_I2S2_WS_4            (GPIO_ALT|GPIO_AF5|GPIO_PORTI|GPIO_PIN0)
#define GPIO_I2S2_WS_5            (GPIO_ALT|GPIO_AF7|GPIO_PORTB|GPIO_PIN4)

#define GPIO_I2S3_CK_1            (GPIO_ALT|GPIO_AF6|GPIO_PORTB|GPIO_PIN3)
#define GPIO_I2S3_CK_2            (GPIO_ALT|GPIO_AF6|GPIO_PORTC|GPIO_PIN10)
#define GPIO_I2S3_MCK_0           (GPIO_ALT|GPIO_AF6|GPIO_PORTC|GPIO_PIN7)
#define GPIO_I2S3_SDI_1           (GPIO_ALT|GPIO_AF6|GPIO_PORTB|GPIO_PIN4)
#define GPIO_I2S3_SDI_2           (GPIO_ALT|GPIO_AF6|GPIO_PORTC|GPIO_PIN11)
#define GPIO_I2S3_SDO_1           (GPIO_ALT|GPIO_AF5|GPIO_PORTD|GPIO_PIN6)
#define GPIO_I2S3_SDO_2           (GPIO_ALT|GPIO_AF6|GPIO_PORTC|GPIO_PIN12)
#define GPIO_I2S3_SDO_3           (GPIO_ALT|GPIO_AF7|GPIO_PORTB|GPIO_PIN2)
#define GPIO_I2S3_SDO_4           (GPIO_ALT|GPIO_AF7|GPIO_PORTB|GPIO_PIN5)
#define GPIO_I2S3_WS_1            (GPIO_ALT|GPIO_AF6|GPIO_PORTA|GPIO_PIN15)
#define GPIO_I2S3_WS_2            (GPIO_ALT|GPIO_AF6|GPIO_PORTA|GPIO_PIN4)

/* JTAG */

#define GPIO_JTCK_0               (GPIO_ALT|GPIO_AF0|GPIO_PORTA|GPIO_PIN14)
#define GPIO_JTDI_0               (GPIO_ALT|GPIO_AF0|GPIO_PORTA|GPIO_PIN15)
#define GPIO_JTDO_0               (GPIO_ALT|GPIO_AF0|GPIO_PORTB|GPIO_PIN3)
#define GPIO_JTMS_0               (GPIO_ALT|GPIO_AF0|GPIO_PORTA|GPIO_PIN13)
#define GPIO_NJTRST_0             (GPIO_ALT|GPIO_AF0|GPIO_PORTB|GPIO_PIN4)

#define GPIO_SWCLK_0              (GPIO_ALT|GPIO_AF0|GPIO_PORTA|GPIO_PIN14)
#define GPIO_SWDIO_0              (GPIO_ALT|GPIO_AF0|GPIO_PORTA|GPIO_PIN13)

/* LCD-TFT Display Controller (LTDC) */

#define GPIO_LTDC_B0_1             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTE|GPIO_PIN4)
#define GPIO_LTDC_B0_2             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTG|GPIO_PIN14)
#define GPIO_LTDC_B0_3             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTJ|GPIO_PIN12)
#define GPIO_LTDC_B1_1             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN10)
#define GPIO_LTDC_B1_2             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTG|GPIO_PIN12)
#define GPIO_LTDC_B1_3             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTJ|GPIO_PIN13)
#define GPIO_LTDC_B2_1             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN9)
#define GPIO_LTDC_B2_2             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTD|GPIO_PIN6)
#define GPIO_LTDC_B2_3             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTG|GPIO_PIN10)
#define GPIO_LTDC_B2_4             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTJ|GPIO_PIN14)
#define GPIO_LTDC_B2_5             (GPIO_ALT|GPIO_AF9|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN3)
#define GPIO_LTDC_B3_1             (GPIO_ALT|GPIO_AF13|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN8)
#define GPIO_LTDC_B3_2             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTD|GPIO_PIN10)
#define GPIO_LTDC_B3_3             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTG|GPIO_PIN11)
#define GPIO_LTDC_B3_4             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTJ|GPIO_PIN15)
#define GPIO_LTDC_B4_1             (GPIO_ALT|GPIO_AF12|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN10)
#define GPIO_LTDC_B4_2             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTE|GPIO_PIN12)
#define GPIO_LTDC_B4_3             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTI|GPIO_PIN4)
#define GPIO_LTDC_B4_4             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTK|GPIO_PIN3)
#define GPIO_LTDC_B4_5             (GPIO_ALT|GPIO_AF9|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTG|GPIO_PIN12)
#define GPIO_LTDC_B4_6             (GPIO_ALT|GPIO_AF9|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTJ|GPIO_PIN13)
#define GPIO_LTDC_B5_1             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN3)
#define GPIO_LTDC_B5_2             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTI|GPIO_PIN5)
#define GPIO_LTDC_B5_3             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTK|GPIO_PIN4)
#define GPIO_LTDC_B6_1             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN8)
#define GPIO_LTDC_B6_2             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTI|GPIO_PIN6)
#define GPIO_LTDC_B6_3             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTK|GPIO_PIN5)
#define GPIO_LTDC_B7_1             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN9)
#define GPIO_LTDC_B7_2             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTI|GPIO_PIN7)
#define GPIO_LTDC_B7_3             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTK|GPIO_PIN6)

#define GPIO_LTDC_CLK_1            (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTE|GPIO_PIN14)
#define GPIO_LTDC_CLK_2            (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTG|GPIO_PIN7)
#define GPIO_LTDC_CLK_3            (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTI|GPIO_PIN14)

#define GPIO_LTDC_DE_1             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTE|GPIO_PIN13)
#define GPIO_LTDC_DE_2             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTF|GPIO_PIN10)
#define GPIO_LTDC_DE_3             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTK|GPIO_PIN7)

#define GPIO_LTDC_G0_1             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN1)
#define GPIO_LTDC_G0_2             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTE|GPIO_PIN5)
#define GPIO_LTDC_G0_3             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTJ|GPIO_PIN7)
#define GPIO_LTDC_G1_1             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN0)
#define GPIO_LTDC_G1_2             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTE|GPIO_PIN6)
#define GPIO_LTDC_G1_3             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTJ|GPIO_PIN8)
#define GPIO_LTDC_G2_1             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN6)
#define GPIO_LTDC_G2_2             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTH|GPIO_PIN13)
#define GPIO_LTDC_G2_3             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTJ|GPIO_PIN9)
#define GPIO_LTDC_G2_4             (GPIO_ALT|GPIO_AF9|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTI|GPIO_PIN15)
#define GPIO_LTDC_G3_1             (GPIO_ALT|GPIO_AF10|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN9)
#define GPIO_LTDC_G3_2             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTE|GPIO_PIN11)
#define GPIO_LTDC_G3_3             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTH|GPIO_PIN14)
#define GPIO_LTDC_G3_4             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTJ|GPIO_PIN10)
#define GPIO_LTDC_G3_5             (GPIO_ALT|GPIO_AF9|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTG|GPIO_PIN10)
#define GPIO_LTDC_G3_6             (GPIO_ALT|GPIO_AF9|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTJ|GPIO_PIN12)
#define GPIO_LTDC_G4_1             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN10)
#define GPIO_LTDC_G4_2             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTH|GPIO_PIN15)
#define GPIO_LTDC_G4_3             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTH|GPIO_PIN4)
#define GPIO_LTDC_G4_4             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTJ|GPIO_PIN11)
#define GPIO_LTDC_G5_1             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN11)
#define GPIO_LTDC_G5_2             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTI|GPIO_PIN0)
#define GPIO_LTDC_G5_3             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTK|GPIO_PIN0)
#define GPIO_LTDC_G5_4             (GPIO_ALT|GPIO_AF9|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTH|GPIO_PIN4)
#define GPIO_LTDC_G6_1             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN7)
#define GPIO_LTDC_G6_2             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTI|GPIO_PIN1)
#define GPIO_LTDC_G6_3             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTK|GPIO_PIN1)
#define GPIO_LTDC_G6_4             (GPIO_ALT|GPIO_AF9|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTI|GPIO_PIN11)
#define GPIO_LTDC_G7_1             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTD|GPIO_PIN3)
#define GPIO_LTDC_G7_2             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTG|GPIO_PIN8)
#define GPIO_LTDC_G7_3             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTI|GPIO_PIN2)
#define GPIO_LTDC_G7_4             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTK|GPIO_PIN2)

#define GPIO_LTDC_HSYNC_1          (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN6)
#define GPIO_LTDC_HSYNC_2          (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTI|GPIO_PIN10)
#define GPIO_LTDC_HSYNC_3          (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTI|GPIO_PIN12)

#define GPIO_LTDC_R0_1             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTG|GPIO_PIN13)
#define GPIO_LTDC_R0_2             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTH|GPIO_PIN2)
#define GPIO_LTDC_R0_3             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTI|GPIO_PIN15)
#define GPIO_LTDC_R1_1             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN2)
#define GPIO_LTDC_R1_2             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTH|GPIO_PIN3)
#define GPIO_LTDC_R1_3             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTJ|GPIO_PIN0)
#define GPIO_LTDC_R2_1             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN1)
#define GPIO_LTDC_R2_2             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN10)
#define GPIO_LTDC_R2_3             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTH|GPIO_PIN8)
#define GPIO_LTDC_R2_4             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTJ|GPIO_PIN1)
#define GPIO_LTDC_R3_1             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTH|GPIO_PIN9)
#define GPIO_LTDC_R3_2             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTJ|GPIO_PIN2)
#define GPIO_LTDC_R3_3             (GPIO_ALT|GPIO_AF9|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN0)
#define GPIO_LTDC_R4_1             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN11)
#define GPIO_LTDC_R4_2             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN5)
#define GPIO_LTDC_R4_3             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTH|GPIO_PIN10)
#define GPIO_LTDC_R4_4             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTJ|GPIO_PIN3)
#define GPIO_LTDC_R5_1             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN12)
#define GPIO_LTDC_R5_2             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN9)
#define GPIO_LTDC_R5_3             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN0)
#define GPIO_LTDC_R5_4             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTH|GPIO_PIN11)
#define GPIO_LTDC_R5_5             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTJ|GPIO_PIN4)
#define GPIO_LTDC_R6_1             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN8)
#define GPIO_LTDC_R6_2             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTH|GPIO_PIN12)
#define GPIO_LTDC_R6_3             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTJ|GPIO_PIN5)
#define GPIO_LTDC_R6_4             (GPIO_ALT|GPIO_AF9|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN1)
#define GPIO_LTDC_R7_1             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTE|GPIO_PIN15)
#define GPIO_LTDC_R7_2             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTG|GPIO_PIN6)
#define GPIO_LTDC_R7_3             (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTJ|GPIO_PIN6)
#define GPIO_LTDC_R7_4             (GPIO_ALT|GPIO_AF9|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTJ|GPIO_PIN0)

#define GPIO_LTDC_VSYNC_1          (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN4)
#define GPIO_LTDC_VSYNC_2          (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTI|GPIO_PIN13)
#define GPIO_LTDC_VSYNC_3          (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PUSHPULL|GPIO_PORTI|GPIO_PIN9)

/* Low Power Timer */

#define GPIO_LPTIM1_ETR_1         (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTE|GPIO_PIN0)
#define GPIO_LPTIM1_ETR_2         (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTG|GPIO_PIN14)
#define GPIO_LPTIM1_IN1_1         (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTD|GPIO_PIN12)
#define GPIO_LPTIM1_IN1_2         (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTG|GPIO_PIN12)
#define GPIO_LPTIM1_IN2_1         (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTE|GPIO_PIN1)
#define GPIO_LPTIM1_IN2_2         (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTH|GPIO_PIN2)
#define GPIO_LPTIM1_OUT_1         (GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTD|GPIO_PIN13)
#define GPIO_LPTIM1_OUT_2         (GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTG|GPIO_PIN13)

#define GPIO_LPTIM2_ETR_1         (GPIO_ALT|GPIO_AF3|GPIO_FLOAT|GPIO_PORTB|GPIO_PIN11)
#define GPIO_LPTIM2_ETR_2         (GPIO_ALT|GPIO_AF4|GPIO_FLOAT|GPIO_PORTE|GPIO_PIN0)
#define GPIO_LPTIM2_IN1_1         (GPIO_ALT|GPIO_AF3|GPIO_FLOAT|GPIO_PORTB|GPIO_PIN10)
#define GPIO_LPTIM2_IN1_2         (GPIO_ALT|GPIO_AF3|GPIO_FLOAT|GPIO_PORTD|GPIO_PIN12)
#define GPIO_LPTIM2_IN2_0         (GPIO_ALT|GPIO_AF3|GPIO_FLOAT|GPIO_PORTD|GPIO_PIN11)
#define GPIO_LPTIM2_OUT_1         (GPIO_ALT|GPIO_AF3|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN13)

#define GPIO_LPTIM3_OUT_2         (GPIO_ALT|GPIO_AF3|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN1)

#define GPIO_LPTIM4_OUT_3         (GPIO_ALT|GPIO_AF3|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN2)

#define GPIO_LPTIM5_OUT_4         (GPIO_ALT|GPIO_AF3|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN3)

/* Low-power universal asynchronous receiver transmitter (LPUART) */

#define GPIO_LPUART1_CTS_0        (GPIO_ALT|GPIO_AF3|GPIO_PORTA|GPIO_PIN11)
#define GPIO_LPUART1_RTS_0        (GPIO_ALT|GPIO_AF3|GPIO_PORTA|GPIO_PIN12)
#define GPIO_LPUART1_RX_1         (GPIO_ALT|GPIO_AF3|GPIO_PORTA|GPIO_PIN10)
#define GPIO_LPUART1_RX_2         (GPIO_ALT|GPIO_AF8|GPIO_PORTB|GPIO_PIN7)
#define GPIO_LPUART1_TX_1         (GPIO_ALT|GPIO_AF3|GPIO_PORTA|GPIO_PIN9)
#define GPIO_LPUART1_TX_2         (GPIO_ALT|GPIO_AF8|GPIO_PORTB|GPIO_PIN6)

/* Clocks outputs */

#define GPIO_MCO1_0               (GPIO_ALT|GPIO_AF0|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN8)
#define GPIO_MCO2_0               (GPIO_ALT|GPIO_AF0|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN9)

/* Management data input/output */

#define GPIO_MDIOS_MDC_1          (GPIO_ALT|GPIO_AF11|GPIO_PORTA|GPIO_PIN6)
#define GPIO_MDIOS_MDC_2          (GPIO_ALT|GPIO_AF12|GPIO_PORTC|GPIO_PIN1)
#define GPIO_MDIOS_MDIO_1         (GPIO_ALT|GPIO_AF11|GPIO_PORTA|GPIO_PIN10)
#define GPIO_MDIOS_MDIO_2         (GPIO_ALT|GPIO_AF12|GPIO_PORTA|GPIO_PIN2)

/* USB on-the-go full-speed (OTG_FS) */

#define GPIO_OTGFS_DM_0           (GPIO_ALT|GPIO_AF10|GPIO_PUSHPULL|GPIO_FLOAT|GPIO_PORTA|GPIO_PIN11)
#define GPIO_OTGFS_DP_0           (GPIO_ALT|GPIO_AF10|GPIO_PUSHPULL|GPIO_FLOAT|GPIO_PORTA|GPIO_PIN12)
#define GPIO_OTGFS_ID_0           (GPIO_ALT|GPIO_AF10|GPIO_OPENDRAIN|GPIO_PULLUP|GPIO_PORTA|GPIO_PIN10)
#define GPIO_OTGFS_SOF_0          (GPIO_ALT|GPIO_AF10|GPIO_PUSHPULL|GPIO_FLOAT|GPIO_PORTA|GPIO_PIN8)

/* USB on-the-go high-speed (OTG_HS) */

#define GPIO_OTGHS_DM_0           (GPIO_ALT|GPIO_AF12|GPIO_PUSHPULL|GPIO_FLOAT|GPIO_PORTB|GPIO_PIN14)
#define GPIO_OTGHS_DP_0           (GPIO_ALT|GPIO_AF12|GPIO_PUSHPULL|GPIO_FLOAT|GPIO_PORTB|GPIO_PIN15)
#define GPIO_OTGHS_ID_0           (GPIO_ALT|GPIO_AF12|GPIO_OPENDRAIN|GPIO_PULLUP|GPIO_PORTB|GPIO_PIN12)
#define GPIO_OTGHS_SOF_0          (GPIO_ALT|GPIO_AF12|GPIO_PUSHPULL|GPIO_FLOAT|GPIO_PORTA|GPIO_PIN4)

#define GPIO_OTG_HS_ULPI_CK_0     (GPIO_ALT|GPIO_AF10|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN5)
#define GPIO_OTG_HS_ULPI_D0_0     (GPIO_ALT|GPIO_AF10|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN3)
#define GPIO_OTG_HS_ULPI_D1_0     (GPIO_ALT|GPIO_AF10|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN0)
#define GPIO_OTG_HS_ULPI_D2_0     (GPIO_ALT|GPIO_AF10|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN1)
#define GPIO_OTG_HS_ULPI_D3_0     (GPIO_ALT|GPIO_AF10|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN10)
#define GPIO_OTG_HS_ULPI_D4_0     (GPIO_ALT|GPIO_AF10|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN11)
#define GPIO_OTG_HS_ULPI_D5_0     (GPIO_ALT|GPIO_AF10|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN12)
#define GPIO_OTG_HS_ULPI_D6_0     (GPIO_ALT|GPIO_AF10|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN13)
#define GPIO_OTG_HS_ULPI_D7_0     (GPIO_ALT|GPIO_AF10|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN5)
#define GPIO_OTG_HS_ULPI_DIR_1    (GPIO_ALT|GPIO_AF10|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN2)
#define GPIO_OTG_HS_ULPI_DIR_2    (GPIO_ALT|GPIO_AF10|GPIO_PUSHPULL|GPIO_PORTI|GPIO_PIN11)
#define GPIO_OTG_HS_ULPI_NXT_1    (GPIO_ALT|GPIO_AF10|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN3)
#define GPIO_OTG_HS_ULPI_NXT_2    (GPIO_ALT|GPIO_AF10|GPIO_PUSHPULL|GPIO_PORTH|GPIO_PIN4)
#define GPIO_OTG_HS_ULPI_STP_0    (GPIO_ALT|GPIO_AF10|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN0)

/* Event outputs */

#define GPIO_PA0_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTA|GPIO_PIN0)
#define GPIO_PA1_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTA|GPIO_PIN1)
#define GPIO_PA2_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTA|GPIO_PIN2)
#define GPIO_PA3_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTA|GPIO_PIN3)
#define GPIO_PA4_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTA|GPIO_PIN4)
#define GPIO_PA5_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTA|GPIO_PIN5)
#define GPIO_PA6_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTA|GPIO_PIN6)
#define GPIO_PA7_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTA|GPIO_PIN7)
#define GPIO_PA8_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTA|GPIO_PIN8)
#define GPIO_PA9_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTA|GPIO_PIN9)
#define GPIO_PA10_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTA|GPIO_PIN10)
#define GPIO_PA11_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTA|GPIO_PIN11)
#define GPIO_PA12_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTA|GPIO_PIN12)
#define GPIO_PA13_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTA|GPIO_PIN13)
#define GPIO_PA14_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTA|GPIO_PIN14)
#define GPIO_PA15_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTA|GPIO_PIN15)

#define GPIO_PB0_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTB|GPIO_PIN0)
#define GPIO_PB1_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTB|GPIO_PIN1)
#define GPIO_PB2_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTB|GPIO_PIN2)
#define GPIO_PB3_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTB|GPIO_PIN3)
#define GPIO_PB4_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTB|GPIO_PIN4)
#define GPIO_PB5_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTB|GPIO_PIN5)
#define GPIO_PB6_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTB|GPIO_PIN6)
#define GPIO_PB7_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTB|GPIO_PIN7)
#define GPIO_PB8_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTB|GPIO_PIN8)
#define GPIO_PB9_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTB|GPIO_PIN9)
#define GPIO_PB10_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTB|GPIO_PIN10)
#define GPIO_PB11_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTB|GPIO_PIN11)
#define GPIO_PB12_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTB|GPIO_PIN12)
#define GPIO_PB13_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTB|GPIO_PIN13)
#define GPIO_PB14_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTB|GPIO_PIN14)
#define GPIO_PB15_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTB|GPIO_PIN15)

#define GPIO_PC0_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTC|GPIO_PIN0)
#define GPIO_PC1_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTC|GPIO_PIN1)
#define GPIO_PC2_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTC|GPIO_PIN2)
#define GPIO_PC3_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTC|GPIO_PIN3)
#define GPIO_PC4_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTC|GPIO_PIN4)
#define GPIO_PC5_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTC|GPIO_PIN5)
#define GPIO_PC6_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTC|GPIO_PIN6)
#define GPIO_PC7_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTC|GPIO_PIN7)
#define GPIO_PC8_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTC|GPIO_PIN8)
#define GPIO_PC9_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTC|GPIO_PIN9)
#define GPIO_PC10_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTC|GPIO_PIN10)
#define GPIO_PC11_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTC|GPIO_PIN11)
#define GPIO_PC12_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTC|GPIO_PIN12)
#define GPIO_PC13_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTC|GPIO_PIN13)
#define GPIO_PC14_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTC|GPIO_PIN14)
#define GPIO_PC15_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTC|GPIO_PIN15)

#define GPIO_PD0_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTD|GPIO_PIN0)
#define GPIO_PD1_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTD|GPIO_PIN1)
#define GPIO_PD2_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTD|GPIO_PIN2)
#define GPIO_PD3_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTD|GPIO_PIN3)
#define GPIO_PD4_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTD|GPIO_PIN4)
#define GPIO_PD5_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTD|GPIO_PIN5)
#define GPIO_PD6_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTD|GPIO_PIN6)
#define GPIO_PD7_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTD|GPIO_PIN7)
#define GPIO_PD8_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTD|GPIO_PIN8)
#define GPIO_PD9_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTD|GPIO_PIN9)
#define GPIO_PD10_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTD|GPIO_PIN10)
#define GPIO_PD11_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTD|GPIO_PIN11)
#define GPIO_PD12_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTD|GPIO_PIN12)
#define GPIO_PD13_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTD|GPIO_PIN13)
#define GPIO_PD14_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTD|GPIO_PIN14)
#define GPIO_PD15_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTD|GPIO_PIN15)

#define GPIO_PE0_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTE|GPIO_PIN0)
#define GPIO_PE1_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTE|GPIO_PIN1)
#define GPIO_PE2_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTE|GPIO_PIN2)
#define GPIO_PE3_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTE|GPIO_PIN3)
#define GPIO_PE4_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTE|GPIO_PIN4)
#define GPIO_PE5_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTE|GPIO_PIN5)
#define GPIO_PE6_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTE|GPIO_PIN6)
#define GPIO_PE7_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTE|GPIO_PIN7)
#define GPIO_PE8_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTE|GPIO_PIN8)
#define GPIO_PE9_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTE|GPIO_PIN9)
#define GPIO_PE10_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTE|GPIO_PIN10)
#define GPIO_PE11_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTE|GPIO_PIN11)
#define GPIO_PE12_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTE|GPIO_PIN12)
#define GPIO_PE13_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTE|GPIO_PIN13)
#define GPIO_PE14_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTE|GPIO_PIN14)
#define GPIO_PE15_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTE|GPIO_PIN15)

#define GPIO_PF0_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTF|GPIO_PIN0)
#define GPIO_PF1_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTF|GPIO_PIN1)
#define GPIO_PF2_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTF|GPIO_PIN2)
#define GPIO_PF3_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTF|GPIO_PIN3)
#define GPIO_PF4_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTF|GPIO_PIN4)
#define GPIO_PF5_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTF|GPIO_PIN5)
#define GPIO_PF6_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTF|GPIO_PIN6)
#define GPIO_PF7_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTF|GPIO_PIN7)
#define GPIO_PF8_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTF|GPIO_PIN8)
#define GPIO_PF9_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTF|GPIO_PIN9)
#define GPIO_PF10_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTF|GPIO_PIN10)
#define GPIO_PF11_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTF|GPIO_PIN11)
#define GPIO_PF12_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTF|GPIO_PIN12)
#define GPIO_PF13_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTF|GPIO_PIN13)
#define GPIO_PF14_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTF|GPIO_PIN14)
#define GPIO_PF15_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTF|GPIO_PIN15)

#define GPIO_PG0_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTG|GPIO_PIN0)
#define GPIO_PG1_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTG|GPIO_PIN1)
#define GPIO_PG2_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTG|GPIO_PIN2)
#define GPIO_PG3_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTG|GPIO_PIN3)
#define GPIO_PG4_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTG|GPIO_PIN4)
#define GPIO_PG5_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTG|GPIO_PIN5)
#define GPIO_PG6_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTG|GPIO_PIN6)
#define GPIO_PG7_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTG|GPIO_PIN7)
#define GPIO_PG8_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTG|GPIO_PIN8)
#define GPIO_PG9_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTG|GPIO_PIN9)
#define GPIO_PG10_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTG|GPIO_PIN10)
#define GPIO_PG11_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTG|GPIO_PIN11)
#define GPIO_PG12_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTG|GPIO_PIN12)
#define GPIO_PG13_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTG|GPIO_PIN13)
#define GPIO_PG14_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTG|GPIO_PIN14)
#define GPIO_PG15_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTG|GPIO_PIN15)

#define GPIO_PH0_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTH|GPIO_PIN0)
#define GPIO_PH1_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTH|GPIO_PIN1)
#define GPIO_PH2_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTH|GPIO_PIN2)
#define GPIO_PH3_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTH|GPIO_PIN3)
#define GPIO_PH4_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTH|GPIO_PIN4)
#define GPIO_PH5_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTH|GPIO_PIN5)
#define GPIO_PH6_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTH|GPIO_PIN6)
#define GPIO_PH7_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTH|GPIO_PIN7)
#define GPIO_PH8_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTH|GPIO_PIN8)
#define GPIO_PH9_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTH|GPIO_PIN9)
#define GPIO_PH10_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTH|GPIO_PIN10)
#define GPIO_PH11_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTH|GPIO_PIN11)
#define GPIO_PH12_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTH|GPIO_PIN12)
#define GPIO_PH13_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTH|GPIO_PIN13)
#define GPIO_PH14_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTH|GPIO_PIN14)
#define GPIO_PH15_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTH|GPIO_PIN15)

#define GPIO_PI0_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTI|GPIO_PIN0)
#define GPIO_PI1_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTI|GPIO_PIN1)
#define GPIO_PI2_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTI|GPIO_PIN2)
#define GPIO_PI3_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTI|GPIO_PIN3)
#define GPIO_PI4_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTI|GPIO_PIN4)
#define GPIO_PI5_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTI|GPIO_PIN5)
#define GPIO_PI6_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTI|GPIO_PIN6)
#define GPIO_PI7_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTI|GPIO_PIN7)
#define GPIO_PI8_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTI|GPIO_PIN8)
#define GPIO_PI9_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTI|GPIO_PIN9)
#define GPIO_PI10_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTI|GPIO_PIN10)
#define GPIO_PI11_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTI|GPIO_PIN11)
#define GPIO_PI12_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTI|GPIO_PIN12)
#define GPIO_PI13_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTI|GPIO_PIN13)
#define GPIO_PI14_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTI|GPIO_PIN14)
#define GPIO_PI15_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTI|GPIO_PIN15)

#define GPIO_PJ0_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTJ|GPIO_PIN0)
#define GPIO_PJ1_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTJ|GPIO_PIN1)
#define GPIO_PJ2_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTJ|GPIO_PIN2)
#define GPIO_PJ3_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTJ|GPIO_PIN3)
#define GPIO_PJ4_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTJ|GPIO_PIN4)
#define GPIO_PJ5_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTJ|GPIO_PIN5)
#define GPIO_PJ6_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTJ|GPIO_PIN6)
#define GPIO_PJ7_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTJ|GPIO_PIN7)
#define GPIO_PJ8_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTJ|GPIO_PIN8)
#define GPIO_PJ9_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTJ|GPIO_PIN9)
#define GPIO_PJ10_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTJ|GPIO_PIN10)
#define GPIO_PJ11_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTJ|GPIO_PIN11)
#define GPIO_PJ12_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTJ|GPIO_PIN12)
#define GPIO_PJ13_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTJ|GPIO_PIN13)
#define GPIO_PJ14_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTJ|GPIO_PIN14)
#define GPIO_PJ15_EVENTOUT_0      (GPIO_ALT|GPIO_AF15|GPIO_PORTJ|GPIO_PIN15)

#define GPIO_PK0_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTK|GPIO_PIN0)
#define GPIO_PK1_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTK|GPIO_PIN1)
#define GPIO_PK2_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTK|GPIO_PIN2)
#define GPIO_PK3_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTK|GPIO_PIN3)
#define GPIO_PK4_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTK|GPIO_PIN4)
#define GPIO_PK5_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTK|GPIO_PIN5)
#define GPIO_PK6_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTK|GPIO_PIN6)
#define GPIO_PK7_EVENTOUT_0       (GPIO_ALT|GPIO_AF15|GPIO_PORTK|GPIO_PIN7)

/* QuadSPI */

#define GPIO_QUADSPI_BK1_IO0_1    (GPIO_ALT|GPIO_AF10|GPIO_PORTF|GPIO_PIN8)
#define GPIO_QUADSPI_BK1_IO0_2    (GPIO_ALT|GPIO_AF9|GPIO_PORTC|GPIO_PIN9)
#define GPIO_QUADSPI_BK1_IO0_3    (GPIO_ALT|GPIO_AF9|GPIO_PORTD|GPIO_PIN11)
#define GPIO_QUADSPI_BK1_IO1_1    (GPIO_ALT|GPIO_AF10|GPIO_PORTF|GPIO_PIN9)
#define GPIO_QUADSPI_BK1_IO1_2    (GPIO_ALT|GPIO_AF9|GPIO_PORTC|GPIO_PIN10)
#define GPIO_QUADSPI_BK1_IO1_3    (GPIO_ALT|GPIO_AF9|GPIO_PORTD|GPIO_PIN12)
#define GPIO_QUADSPI_BK1_IO2_1    (GPIO_ALT|GPIO_AF9|GPIO_PORTE|GPIO_PIN2)
#define GPIO_QUADSPI_BK1_IO2_2    (GPIO_ALT|GPIO_AF9|GPIO_PORTF|GPIO_PIN7)
#define GPIO_QUADSPI_BK1_IO3_1    (GPIO_ALT|GPIO_AF9|GPIO_PORTA|GPIO_PIN1)
#define GPIO_QUADSPI_BK1_IO3_2    (GPIO_ALT|GPIO_AF9|GPIO_PORTD|GPIO_PIN13)
#define GPIO_QUADSPI_BK1_IO3_3    (GPIO_ALT|GPIO_AF9|GPIO_PORTF|GPIO_PIN6)

#define GPIO_QUADSPI_BK1_NCS_1    (GPIO_ALT|GPIO_AF10|GPIO_PORTB|GPIO_PIN6)
#define GPIO_QUADSPI_BK1_NCS_2    (GPIO_ALT|GPIO_AF10|GPIO_PORTG|GPIO_PIN6)
#define GPIO_QUADSPI_BK1_NCS_3    (GPIO_ALT|GPIO_AF9|GPIO_PORTB|GPIO_PIN10)

#define GPIO_QUADSPI_BK2_IO0_1    (GPIO_ALT|GPIO_AF10|GPIO_PORTE|GPIO_PIN7)
#define GPIO_QUADSPI_BK2_IO0_2    (GPIO_ALT|GPIO_AF9|GPIO_PORTH|GPIO_PIN2)
#define GPIO_QUADSPI_BK2_IO1_1    (GPIO_ALT|GPIO_AF10|GPIO_PORTE|GPIO_PIN8)
#define GPIO_QUADSPI_BK2_IO1_2    (GPIO_ALT|GPIO_AF9|GPIO_PORTH|GPIO_PIN3)
#define GPIO_QUADSPI_BK2_IO2_1    (GPIO_ALT|GPIO_AF10|GPIO_PORTE|GPIO_PIN9)
#define GPIO_QUADSPI_BK2_IO2_2    (GPIO_ALT|GPIO_AF9|GPIO_PORTG|GPIO_PIN9)
#define GPIO_QUADSPI_BK2_IO3_1    (GPIO_ALT|GPIO_AF10|GPIO_PORTE|GPIO_PIN10)
#define GPIO_QUADSPI_BK2_IO3_2    (GPIO_ALT|GPIO_AF9|GPIO_PORTG|GPIO_PIN14)

#define GPIO_QUADSPI_BK2_NCS_0    (GPIO_ALT|GPIO_AF9|GPIO_PORTC|GPIO_PIN11)

#define GPIO_QUADSPI_CLK_1        (GPIO_ALT|GPIO_AF9|GPIO_PORTB|GPIO_PIN2)
#define GPIO_QUADSPI_CLK_2        (GPIO_ALT|GPIO_AF9|GPIO_PORTF|GPIO_PIN10)

/* RTC */

#define GPIO_RTC_REFIN_0          (GPIO_ALT|GPIO_AF0|GPIO_PORTB|GPIO_PIN15)

/* Serial Audio Interface */

#define GPIO_SAI1_CK1_0           (GPIO_ALT|GPIO_AF2|GPIO_PORTE|GPIO_PIN2)
#define GPIO_SAI1_CK2_0           (GPIO_ALT|GPIO_AF2|GPIO_PORTE|GPIO_PIN5)
#define GPIO_SAI1_D1_1            (GPIO_ALT|GPIO_AF2|GPIO_PORTB|GPIO_PIN2)
#define GPIO_SAI1_D1_2            (GPIO_ALT|GPIO_AF2|GPIO_PORTC|GPIO_PIN1)
#define GPIO_SAI1_D1_3            (GPIO_ALT|GPIO_AF2|GPIO_PORTD|GPIO_PIN6)
#define GPIO_SAI1_D1_4            (GPIO_ALT|GPIO_AF2|GPIO_PORTE|GPIO_PIN6)
#define GPIO_SAI1_D2_0            (GPIO_ALT|GPIO_AF2|GPIO_PORTE|GPIO_PIN4)
#define GPIO_SAI1_D3_1            (GPIO_ALT|GPIO_AF2|GPIO_PORTC|GPIO_PIN5)
#define GPIO_SAI1_D3_2            (GPIO_ALT|GPIO_AF2|GPIO_PORTF|GPIO_PIN10)
#define GPIO_SAI1_FS_A_0          (GPIO_ALT|GPIO_AF6|GPIO_PORTE|GPIO_PIN4)
#define GPIO_SAI1_FS_B_0          (GPIO_ALT|GPIO_AF6|GPIO_PORTF|GPIO_PIN9)
#define GPIO_SAI1_MCLK_A_1        (GPIO_ALT|GPIO_AF6|GPIO_PORTE|GPIO_PIN2)
#define GPIO_SAI1_MCLK_A_2        (GPIO_ALT|GPIO_AF6|GPIO_PORTG|GPIO_PIN7)
#define GPIO_SAI1_MCLK_B_0        (GPIO_ALT|GPIO_AF6|GPIO_PORTF|GPIO_PIN7)
#define GPIO_SAI1_SCK_A_0         (GPIO_ALT|GPIO_AF6|GPIO_PORTE|GPIO_PIN5)
#define GPIO_SAI1_SCK_B_0         (GPIO_ALT|GPIO_AF6|GPIO_PORTF|GPIO_PIN8)
#define GPIO_SAI1_SD_A_1          (GPIO_ALT|GPIO_AF6|GPIO_PORTB|GPIO_PIN2)
#define GPIO_SAI1_SD_A_2          (GPIO_ALT|GPIO_AF6|GPIO_PORTC|GPIO_PIN1)
#define GPIO_SAI1_SD_A_3          (GPIO_ALT|GPIO_AF6|GPIO_PORTD|GPIO_PIN6)
#define GPIO_SAI1_SD_A_4          (GPIO_ALT|GPIO_AF6|GPIO_PORTE|GPIO_PIN6)
#define GPIO_SAI1_SD_B_1          (GPIO_ALT|GPIO_AF6|GPIO_PORTE|GPIO_PIN3)
#define GPIO_SAI1_SD_B_2          (GPIO_ALT|GPIO_AF6|GPIO_PORTF|GPIO_PIN6)

#define GPIO_SAI2_FS_A_1          (GPIO_ALT|GPIO_AF10|GPIO_PORTD|GPIO_PIN12)
#define GPIO_SAI2_FS_A_2          (GPIO_ALT|GPIO_AF10|GPIO_PORTI|GPIO_PIN7)
#define GPIO_SAI2_FS_B_1          (GPIO_ALT|GPIO_AF10|GPIO_PORTE|GPIO_PIN13)
#define GPIO_SAI2_FS_B_2          (GPIO_ALT|GPIO_AF10|GPIO_PORTG|GPIO_PIN9)
#define GPIO_SAI2_FS_B_3          (GPIO_ALT|GPIO_AF8|GPIO_PORTA|GPIO_PIN12)
#define GPIO_SAI2_FS_B_4          (GPIO_ALT|GPIO_AF8|GPIO_PORTC|GPIO_PIN0)
#define GPIO_SAI2_MCK_A_1         (GPIO_ALT|GPIO_AF10|GPIO_PORTE|GPIO_PIN0)
#define GPIO_SAI2_MCK_A_2         (GPIO_ALT|GPIO_AF10|GPIO_PORTI|GPIO_PIN4)
#define GPIO_SAI2_MCK_B_1         (GPIO_ALT|GPIO_AF10|GPIO_PORTA|GPIO_PIN1)
#define GPIO_SAI2_MCK_B_2         (GPIO_ALT|GPIO_AF10|GPIO_PORTE|GPIO_PIN14)
#define GPIO_SAI2_MCK_B_3         (GPIO_ALT|GPIO_AF10|GPIO_PORTE|GPIO_PIN6)
#define GPIO_SAI2_MCK_B_4         (GPIO_ALT|GPIO_AF10|GPIO_PORTH|GPIO_PIN3)
#define GPIO_SAI2_SCK_A_1         (GPIO_ALT|GPIO_AF10|GPIO_PORTD|GPIO_PIN13)
#define GPIO_SAI2_SCK_A_2         (GPIO_ALT|GPIO_AF10|GPIO_PORTI|GPIO_PIN5)
#define GPIO_SAI2_SCK_B_1         (GPIO_ALT|GPIO_AF10|GPIO_PORTE|GPIO_PIN12)
#define GPIO_SAI2_SCK_B_2         (GPIO_ALT|GPIO_AF10|GPIO_PORTH|GPIO_PIN2)
#define GPIO_SAI2_SCK_B_3         (GPIO_ALT|GPIO_AF8|GPIO_PORTA|GPIO_PIN2)
#define GPIO_SAI2_SD_A_1          (GPIO_ALT|GPIO_AF10|GPIO_PORTD|GPIO_PIN11)
#define GPIO_SAI2_SD_A_2          (GPIO_ALT|GPIO_AF10|GPIO_PORTI|GPIO_PIN6)
#define GPIO_SAI2_SD_B_1          (GPIO_ALT|GPIO_AF10|GPIO_PORTA|GPIO_PIN0)
#define GPIO_SAI2_SD_B_2          (GPIO_ALT|GPIO_AF10|GPIO_PORTE|GPIO_PIN11)
#define GPIO_SAI2_SD_B_3          (GPIO_ALT|GPIO_AF10|GPIO_PORTF|GPIO_PIN11)
#define GPIO_SAI2_SD_B_4          (GPIO_ALT|GPIO_AF10|GPIO_PORTG|GPIO_PIN10)

#define GPIO_SAI3_FS_A_0          (GPIO_ALT|GPIO_AF6|GPIO_PORTD|GPIO_PIN4)
#define GPIO_SAI3_FS_B_0          (GPIO_ALT|GPIO_AF6|GPIO_PORTD|GPIO_PIN10)
#define GPIO_SAI3_MCLK_A_0        (GPIO_ALT|GPIO_AF6|GPIO_PORTD|GPIO_PIN15)
#define GPIO_SAI3_MCLK_B_0        (GPIO_ALT|GPIO_AF6|GPIO_PORTD|GPIO_PIN14)
#define GPIO_SAI3_SCK_A_0         (GPIO_ALT|GPIO_AF6|GPIO_PORTD|GPIO_PIN0)
#define GPIO_SAI3_SCK_B_0         (GPIO_ALT|GPIO_AF6|GPIO_PORTD|GPIO_PIN8)
#define GPIO_SAI3_SD_A_0          (GPIO_ALT|GPIO_AF6|GPIO_PORTD|GPIO_PIN1)
#define GPIO_SAI3_SD_B_0          (GPIO_ALT|GPIO_AF6|GPIO_PORTD|GPIO_PIN9)

#define GPIO_SAI4_CK1_0           (GPIO_ALT|GPIO_AF10|GPIO_PORTE|GPIO_PIN2)
#define GPIO_SAI4_CK2_0           (GPIO_ALT|GPIO_AF10|GPIO_PORTE|GPIO_PIN5)
#define GPIO_SAI4_D1_1            (GPIO_ALT|GPIO_AF10|GPIO_PORTB|GPIO_PIN2)
#define GPIO_SAI4_D1_2            (GPIO_ALT|GPIO_AF10|GPIO_PORTC|GPIO_PIN1)
#define GPIO_SAI4_D1_3            (GPIO_ALT|GPIO_AF10|GPIO_PORTD|GPIO_PIN6)
#define GPIO_SAI4_D1_4            (GPIO_ALT|GPIO_AF9|GPIO_PORTE|GPIO_PIN6)
#define GPIO_SAI4_D2_0            (GPIO_ALT|GPIO_AF10|GPIO_PORTE|GPIO_PIN4)
#define GPIO_SAI4_D3_1            (GPIO_ALT|GPIO_AF10|GPIO_PORTC|GPIO_PIN5)
#define GPIO_SAI4_D3_2            (GPIO_ALT|GPIO_AF10|GPIO_PORTF|GPIO_PIN10)
#define GPIO_SAI4_FS_A_0          (GPIO_ALT|GPIO_AF8|GPIO_PORTE|GPIO_PIN4)
#define GPIO_SAI4_FS_B_0          (GPIO_ALT|GPIO_AF8|GPIO_PORTF|GPIO_PIN9)
#define GPIO_SAI4_MCLK_A_0        (GPIO_ALT|GPIO_AF8|GPIO_PORTE|GPIO_PIN2)
#define GPIO_SAI4_MCLK_B_0        (GPIO_ALT|GPIO_AF8|GPIO_PORTF|GPIO_PIN7)
#define GPIO_SAI4_SCK_A_0         (GPIO_ALT|GPIO_AF8|GPIO_PORTE|GPIO_PIN5)
#define GPIO_SAI4_SCK_B_0         (GPIO_ALT|GPIO_AF8|GPIO_PORTF|GPIO_PIN8)
#define GPIO_SAI4_SD_A_1          (GPIO_ALT|GPIO_AF8|GPIO_PORTB|GPIO_PIN2)
#define GPIO_SAI4_SD_A_2          (GPIO_ALT|GPIO_AF8|GPIO_PORTC|GPIO_PIN1)
#define GPIO_SAI4_SD_A_3          (GPIO_ALT|GPIO_AF8|GPIO_PORTD|GPIO_PIN6)
#define GPIO_SAI4_SD_A_4          (GPIO_ALT|GPIO_AF8|GPIO_PORTE|GPIO_PIN6)
#define GPIO_SAI4_SD_B_1          (GPIO_ALT|GPIO_AF8|GPIO_PORTE|GPIO_PIN3)
#define GPIO_SAI4_SD_B_2          (GPIO_ALT|GPIO_AF8|GPIO_PORTF|GPIO_PIN6)

/* SD/MMC */

#define GPIO_SDMMC1_CDIR_0        (GPIO_ALT|GPIO_AF7|GPIO_PORTB|GPIO_PIN9)
#define GPIO_SDMMC1_CK_0          (GPIO_ALT|GPIO_AF12|GPIO_PORTC|GPIO_PIN12)
#define GPIO_SDMMC1_CKIN_0        (GPIO_ALT|GPIO_AF7|GPIO_PORTB|GPIO_PIN8)
#define GPIO_SDMMC1_CMD_0         (GPIO_ALT|GPIO_AF12|GPIO_PUSHPULL|GPIO_PORTD|GPIO_PIN2)
#define GPIO_SDMMC1_D0_0          (GPIO_ALT|GPIO_AF12|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN8)
#define GPIO_SDMMC1_D0DIR_0       (GPIO_ALT|GPIO_AF8|GPIO_PORTC|GPIO_PIN6)
#define GPIO_SDMMC1_D1_0          (GPIO_ALT|GPIO_AF12|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN9)
#define GPIO_SDMMC1_D123DIR_0     (GPIO_ALT|GPIO_AF8|GPIO_PORTC|GPIO_PIN7)
#define GPIO_SDMMC1_D2_0          (GPIO_ALT|GPIO_AF12|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN10)
#define GPIO_SDMMC1_D3_0          (GPIO_ALT|GPIO_AF12|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN11)
#define GPIO_SDMMC1_D4_0          (GPIO_ALT|GPIO_AF12|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN8)
#define GPIO_SDMMC1_D5_0          (GPIO_ALT|GPIO_AF12|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN9)
#define GPIO_SDMMC1_D6_0          (GPIO_ALT|GPIO_AF12|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN6)
#define GPIO_SDMMC1_D7_0          (GPIO_ALT|GPIO_AF12|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN7)

#define GPIO_SDMMC2_CK_1          (GPIO_ALT|GPIO_AF11|GPIO_PORTD|GPIO_PIN6)
#define GPIO_SDMMC2_CK_2          (GPIO_ALT|GPIO_AF9|GPIO_PORTC|GPIO_PIN1)
#define GPIO_SDMMC2_CMD_1         (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PULLUP|GPIO_PORTD|GPIO_PIN7)
#define GPIO_SDMMC2_CMD_2         (GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN0)
#define GPIO_SDMMC2_D0_0          (GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN14)
#define GPIO_SDMMC2_D1_0          (GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN15)
#define GPIO_SDMMC2_D2_1          (GPIO_ALT|GPIO_AF10|GPIO_PUSHPULL|GPIO_PORTG|GPIO_PIN11)
#define GPIO_SDMMC2_D2_2          (GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN3)
#define GPIO_SDMMC2_D3_0          (GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN4)
#define GPIO_SDMMC2_D4_0          (GPIO_ALT|GPIO_AF10|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN8)
#define GPIO_SDMMC2_D5_0          (GPIO_ALT|GPIO_AF10|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN9)
#define GPIO_SDMMC2_D6_0          (GPIO_ALT|GPIO_AF10|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN6)
#define GPIO_SDMMC2_D7_0          (GPIO_ALT|GPIO_AF10|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN7)

/* SPDIFRX */

#define GPIO_SPDIFRX_IN0_1        (GPIO_ALT|GPIO_AF8|GPIO_PORTG|GPIO_PIN11)
#define GPIO_SPDIFRX_IN0_2        (GPIO_ALT|GPIO_AF9|GPIO_PORTD|GPIO_PIN7)
#define GPIO_SPDIFRX_IN1_1        (GPIO_ALT|GPIO_AF8|GPIO_PORTG|GPIO_PIN12)
#define GPIO_SPDIFRX_IN1_2        (GPIO_ALT|GPIO_AF9|GPIO_PORTD|GPIO_PIN8)
#define GPIO_SPDIFRX_IN2_1        (GPIO_ALT|GPIO_AF8|GPIO_PORTG|GPIO_PIN8)
#define GPIO_SPDIFRX_IN2_2        (GPIO_ALT|GPIO_AF9|GPIO_PORTC|GPIO_PIN4)
#define GPIO_SPDIFRX_IN3_1        (GPIO_ALT|GPIO_AF8|GPIO_PORTG|GPIO_PIN9)
#define GPIO_SPDIFRX_IN3_2        (GPIO_ALT|GPIO_AF9|GPIO_PORTC|GPIO_PIN5)

/* SPI */

#define GPIO_SPI1_MISO_1          (GPIO_ALT|GPIO_AF5|GPIO_PORTA|GPIO_PIN6)
#define GPIO_SPI1_MISO_2          (GPIO_ALT|GPIO_AF5|GPIO_PORTB|GPIO_PIN4)
#define GPIO_SPI1_MISO_3          (GPIO_ALT|GPIO_AF5|GPIO_PORTG|GPIO_PIN9)
#define GPIO_SPI1_MOSI_1          (GPIO_ALT|GPIO_AF5|GPIO_PORTA|GPIO_PIN7)
#define GPIO_SPI1_MOSI_2          (GPIO_ALT|GPIO_AF5|GPIO_PORTB|GPIO_PIN5)
#define GPIO_SPI1_MOSI_3          (GPIO_ALT|GPIO_AF5|GPIO_PORTD|GPIO_PIN7)
#define GPIO_SPI1_NSS_1           (GPIO_ALT|GPIO_AF5|GPIO_PORTA|GPIO_PIN15)
#define GPIO_SPI1_NSS_2           (GPIO_ALT|GPIO_AF5|GPIO_PORTA|GPIO_PIN4)
#define GPIO_SPI1_NSS_3           (GPIO_ALT|GPIO_AF5|GPIO_PORTG|GPIO_PIN10)
#define GPIO_SPI1_SCK_1           (GPIO_ALT|GPIO_AF5|GPIO_PORTA|GPIO_PIN5)
#define GPIO_SPI1_SCK_2           (GPIO_ALT|GPIO_AF5|GPIO_PORTB|GPIO_PIN3)
#define GPIO_SPI1_SCK_3           (GPIO_ALT|GPIO_AF5|GPIO_PORTG|GPIO_PIN11)

#define GPIO_SPI2_MISO_1          (GPIO_ALT|GPIO_AF5|GPIO_PORTB|GPIO_PIN14)
#define GPIO_SPI2_MISO_2          (GPIO_ALT|GPIO_AF5|GPIO_PORTC|GPIO_PIN2)
#define GPIO_SPI2_MISO_3          (GPIO_ALT|GPIO_AF5|GPIO_PORTI|GPIO_PIN2)
#define GPIO_SPI2_MOSI_1          (GPIO_ALT|GPIO_AF5|GPIO_PORTB|GPIO_PIN15)
#define GPIO_SPI2_MOSI_2          (GPIO_ALT|GPIO_AF5|GPIO_PORTC|GPIO_PIN1)
#define GPIO_SPI2_MOSI_3          (GPIO_ALT|GPIO_AF5|GPIO_PORTC|GPIO_PIN3)
#define GPIO_SPI2_MOSI_4          (GPIO_ALT|GPIO_AF5|GPIO_PORTI|GPIO_PIN3)
#define GPIO_SPI2_NSS_1           (GPIO_ALT|GPIO_AF5|GPIO_PORTA|GPIO_PIN11)
#define GPIO_SPI2_NSS_2           (GPIO_ALT|GPIO_AF5|GPIO_PORTB|GPIO_PIN12)
#define GPIO_SPI2_NSS_3           (GPIO_ALT|GPIO_AF5|GPIO_PORTB|GPIO_PIN9)
#define GPIO_SPI2_NSS_4           (GPIO_ALT|GPIO_AF5|GPIO_PORTI|GPIO_PIN0)
#define GPIO_SPI2_NSS_5           (GPIO_ALT|GPIO_AF7|GPIO_PORTB|GPIO_PIN4)
#define GPIO_SPI2_SCK_1           (GPIO_ALT|GPIO_AF5|GPIO_PORTA|GPIO_PIN12)
#define GPIO_SPI2_SCK_2           (GPIO_ALT|GPIO_AF5|GPIO_PORTA|GPIO_PIN9)
#define GPIO_SPI2_SCK_3           (GPIO_ALT|GPIO_AF5|GPIO_PORTB|GPIO_PIN10)
#define GPIO_SPI2_SCK_4           (GPIO_ALT|GPIO_AF5|GPIO_PORTB|GPIO_PIN13)
#define GPIO_SPI2_SCK_5           (GPIO_ALT|GPIO_AF5|GPIO_PORTD|GPIO_PIN3)
#define GPIO_SPI2_SCK_6           (GPIO_ALT|GPIO_AF5|GPIO_PORTI|GPIO_PIN1)

#define GPIO_SPI3_MISO_1          (GPIO_ALT|GPIO_AF6|GPIO_PORTB|GPIO_PIN4)
#define GPIO_SPI3_MISO_2          (GPIO_ALT|GPIO_AF6|GPIO_PORTC|GPIO_PIN11)
#define GPIO_SPI3_MOSI_1          (GPIO_ALT|GPIO_AF5|GPIO_PORTD|GPIO_PIN6)
#define GPIO_SPI3_MOSI_2          (GPIO_ALT|GPIO_AF6|GPIO_PORTC|GPIO_PIN12)
#define GPIO_SPI3_MOSI_3          (GPIO_ALT|GPIO_AF7|GPIO_PORTB|GPIO_PIN2)
#define GPIO_SPI3_MOSI_4          (GPIO_ALT|GPIO_AF7|GPIO_PORTB|GPIO_PIN5)
#define GPIO_SPI3_NSS_1           (GPIO_ALT|GPIO_AF6|GPIO_PORTA|GPIO_PIN15)
#define GPIO_SPI3_NSS_2           (GPIO_ALT|GPIO_AF6|GPIO_PORTA|GPIO_PIN4)
#define GPIO_SPI3_SCK_1           (GPIO_ALT|GPIO_AF6|GPIO_PORTB|GPIO_PIN3)
#define GPIO_SPI3_SCK_2           (GPIO_ALT|GPIO_AF6|GPIO_PORTC|GPIO_PIN10)

#define GPIO_SPI4_MISO_1          (GPIO_ALT|GPIO_AF5|GPIO_PORTE|GPIO_PIN13)
#define GPIO_SPI4_MISO_2          (GPIO_ALT|GPIO_AF5|GPIO_PORTE|GPIO_PIN5)
#define GPIO_SPI4_MOSI_1          (GPIO_ALT|GPIO_AF5|GPIO_PORTE|GPIO_PIN14)
#define GPIO_SPI4_MOSI_2          (GPIO_ALT|GPIO_AF5|GPIO_PORTE|GPIO_PIN6)
#define GPIO_SPI4_NSS_1           (GPIO_ALT|GPIO_AF5|GPIO_PORTE|GPIO_PIN11)
#define GPIO_SPI4_NSS_2           (GPIO_ALT|GPIO_AF5|GPIO_PORTE|GPIO_PIN4)
#define GPIO_SPI4_SCK_1           (GPIO_ALT|GPIO_AF5|GPIO_PORTE|GPIO_PIN12)
#define GPIO_SPI4_SCK_2           (GPIO_ALT|GPIO_AF5|GPIO_PORTE|GPIO_PIN2)

#define GPIO_SPI5_MISO_1          (GPIO_ALT|GPIO_AF5|GPIO_PORTF|GPIO_PIN8)
#define GPIO_SPI5_MISO_2          (GPIO_ALT|GPIO_AF5|GPIO_PORTH|GPIO_PIN7)
#define GPIO_SPI5_MISO_3          (GPIO_ALT|GPIO_AF5|GPIO_PORTJ|GPIO_PIN11)
#define GPIO_SPI5_MOSI_1          (GPIO_ALT|GPIO_AF5|GPIO_PORTF|GPIO_PIN11)
#define GPIO_SPI5_MOSI_2          (GPIO_ALT|GPIO_AF5|GPIO_PORTF|GPIO_PIN9)
#define GPIO_SPI5_MOSI_3          (GPIO_ALT|GPIO_AF5|GPIO_PORTJ|GPIO_PIN10)
#define GPIO_SPI5_NSS_1           (GPIO_ALT|GPIO_AF5|GPIO_PORTF|GPIO_PIN6)
#define GPIO_SPI5_NSS_2           (GPIO_ALT|GPIO_AF5|GPIO_PORTH|GPIO_PIN5)
#define GPIO_SPI5_NSS_3           (GPIO_ALT|GPIO_AF5|GPIO_PORTK|GPIO_PIN1)
#define GPIO_SPI5_SCK_1           (GPIO_ALT|GPIO_AF5|GPIO_PORTF|GPIO_PIN7)
#define GPIO_SPI5_SCK_2           (GPIO_ALT|GPIO_AF5|GPIO_PORTH|GPIO_PIN6)
#define GPIO_SPI5_SCK_3           (GPIO_ALT|GPIO_AF5|GPIO_PORTK|GPIO_PIN0)

#define GPIO_SPI6_MISO_1          (GPIO_ALT|GPIO_AF5|GPIO_PORTG|GPIO_PIN12)
#define GPIO_SPI6_MISO_2          (GPIO_ALT|GPIO_AF8|GPIO_PORTA|GPIO_PIN6)
#define GPIO_SPI6_MISO_3          (GPIO_ALT|GPIO_AF8|GPIO_PORTB|GPIO_PIN4)
#define GPIO_SPI6_MOSI_1          (GPIO_ALT|GPIO_AF5|GPIO_PORTG|GPIO_PIN14)
#define GPIO_SPI6_MOSI_2          (GPIO_ALT|GPIO_AF8|GPIO_PORTA|GPIO_PIN7)
#define GPIO_SPI6_MOSI_3          (GPIO_ALT|GPIO_AF8|GPIO_PORTB|GPIO_PIN5)
#define GPIO_SPI6_NSS_1           (GPIO_ALT|GPIO_AF5|GPIO_PORTG|GPIO_PIN8)
#define GPIO_SPI6_NSS_2           (GPIO_ALT|GPIO_AF7|GPIO_PORTA|GPIO_PIN15)
#define GPIO_SPI6_NSS_3           (GPIO_ALT|GPIO_AF8|GPIO_PORTA|GPIO_PIN4)
#define GPIO_SPI6_SCK_1           (GPIO_ALT|GPIO_AF5|GPIO_PORTG|GPIO_PIN13)
#define GPIO_SPI6_SCK_2           (GPIO_ALT|GPIO_AF8|GPIO_PORTA|GPIO_PIN5)
#define GPIO_SPI6_SCK_3           (GPIO_ALT|GPIO_AF8|GPIO_PORTB|GPIO_PIN3)

/* Single Wire Protocol Master Interface (SWPMI) */

#define GPIO_SWPMI_RX_0           (GPIO_ALT|GPIO_AF11|GPIO_PORTC|GPIO_PIN8)
#define GPIO_SWPMI_SUSPEND_0      (GPIO_ALT|GPIO_AF11|GPIO_PORTC|GPIO_PIN9)
#define GPIO_SWPMI_TX_0           (GPIO_ALT|GPIO_AF11|GPIO_PORTC|GPIO_PIN7)

/* Timers */

#define GPIO_TIM1_BKIN_1          (GPIO_ALT|GPIO_AF1|GPIO_PORTA|GPIO_PIN6)
#define GPIO_TIM1_BKIN_2          (GPIO_ALT|GPIO_AF1|GPIO_PORTB|GPIO_PIN12)
#define GPIO_TIM1_BKIN_3          (GPIO_ALT|GPIO_AF1|GPIO_PORTE|GPIO_PIN15)
#define GPIO_TIM1_BKIN_4          (GPIO_ALT|GPIO_AF1|GPIO_PORTK|GPIO_PIN2)
#define GPIO_TIM1_BKIN_COMP12_1   (GPIO_ALT|GPIO_AF11|GPIO_PORTK|GPIO_PIN2)
#define GPIO_TIM1_BKIN_COMP12_2   (GPIO_ALT|GPIO_AF12|GPIO_PORTA|GPIO_PIN6)
#define GPIO_TIM1_BKIN_COMP12_3   (GPIO_ALT|GPIO_AF13|GPIO_PORTB|GPIO_PIN12)
#define GPIO_TIM1_BKIN_COMP12_4   (GPIO_ALT|GPIO_AF13|GPIO_PORTE|GPIO_PIN15)
#define GPIO_TIM1_BKIN2_1         (GPIO_ALT|GPIO_AF1|GPIO_PORTE|GPIO_PIN6)
#define GPIO_TIM1_BKIN2_2         (GPIO_ALT|GPIO_AF1|GPIO_PORTG|GPIO_PIN4)
#define GPIO_TIM1_BKIN2_COMP12_1  (GPIO_ALT|GPIO_AF11|GPIO_PORTE|GPIO_PIN6)
#define GPIO_TIM1_BKIN2_COMP12_2  (GPIO_ALT|GPIO_AF11|GPIO_PORTG|GPIO_PIN4)
#define GPIO_TIM1_CH1IN_1         (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTA|GPIO_PIN8)
#define GPIO_TIM1_CH1IN_2         (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTE|GPIO_PIN9)
#define GPIO_TIM1_CH1IN_3         (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTK|GPIO_PIN1)
#define GPIO_TIM1_CH1OUT_1        (GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN8)
#define GPIO_TIM1_CH1OUT_2        (GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTE|GPIO_PIN9)
#define GPIO_TIM1_CH1OUT_3        (GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTK|GPIO_PIN1)
#define GPIO_TIM1_CH1NOUT_1       (GPIO_ALT|GPIO_AF1|GPIO_PORTA|GPIO_PIN7)
#define GPIO_TIM1_CH1NOUT_2       (GPIO_ALT|GPIO_AF1|GPIO_PORTB|GPIO_PIN13)
#define GPIO_TIM1_CH1NOUT_3       (GPIO_ALT|GPIO_AF1|GPIO_PORTE|GPIO_PIN8)
#define GPIO_TIM1_CH1NOUT_4       (GPIO_ALT|GPIO_AF1|GPIO_PORTK|GPIO_PIN0)
#define GPIO_TIM1_CH2IN_1         (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTA|GPIO_PIN9)
#define GPIO_TIM1_CH2IN_2         (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTE|GPIO_PIN11)
#define GPIO_TIM1_CH2IN_3         (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTJ|GPIO_PIN11)
#define GPIO_TIM1_CH2OUT_1        (GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN9)
#define GPIO_TIM1_CH2OUT_2        (GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTE|GPIO_PIN11)
#define GPIO_TIM1_CH2OUT_3        (GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTJ|GPIO_PIN11)
#define GPIO_TIM1_CH2NOUT_1       (GPIO_ALT|GPIO_AF1|GPIO_PORTB|GPIO_PIN0)
#define GPIO_TIM1_CH2NOUT_2       (GPIO_ALT|GPIO_AF1|GPIO_PORTB|GPIO_PIN14)
#define GPIO_TIM1_CH2NOUT_3       (GPIO_ALT|GPIO_AF1|GPIO_PORTE|GPIO_PIN10)
#define GPIO_TIM1_CH2NOUT_4       (GPIO_ALT|GPIO_AF1|GPIO_PORTJ|GPIO_PIN10)
#define GPIO_TIM1_CH3IN_1         (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTA|GPIO_PIN10)
#define GPIO_TIM1_CH3IN_2         (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTE|GPIO_PIN13)
#define GPIO_TIM1_CH3IN_3         (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTJ|GPIO_PIN9)
#define GPIO_TIM1_CH3OUT_1        (GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN10)
#define GPIO_TIM1_CH3OUT_2        (GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTE|GPIO_PIN13)
#define GPIO_TIM1_CH3OUT_3        (GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTJ|GPIO_PIN9)
#define GPIO_TIM1_CH3NOUT_1       (GPIO_ALT|GPIO_AF1|GPIO_PORTB|GPIO_PIN1)
#define GPIO_TIM1_CH3NOUT_2       (GPIO_ALT|GPIO_AF1|GPIO_PORTB|GPIO_PIN15)
#define GPIO_TIM1_CH3NOUT_3       (GPIO_ALT|GPIO_AF1|GPIO_PORTE|GPIO_PIN12)
#define GPIO_TIM1_CH3NOUT_4       (GPIO_ALT|GPIO_AF1|GPIO_PORTJ|GPIO_PIN8)
#define GPIO_TIM1_CH4IN_1         (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTA|GPIO_PIN11)
#define GPIO_TIM1_CH4IN_2         (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTE|GPIO_PIN14)
#define GPIO_TIM1_CH4OUT_1        (GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN11)
#define GPIO_TIM1_CH4OUT_2        (GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTE|GPIO_PIN14)
#define GPIO_TIM1_ETR_1           (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTA|GPIO_PIN12)
#define GPIO_TIM1_ETR_2           (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTE|GPIO_PIN7)
#define GPIO_TIM1_ETR_3           (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTG|GPIO_PIN5)

#define GPIO_TIM2_CH1IN_1         (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTA|GPIO_PIN0)
#define GPIO_TIM2_CH1IN_2         (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTA|GPIO_PIN15)
#define GPIO_TIM2_CH1IN_3         (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTA|GPIO_PIN5)
#define GPIO_TIM2_CH1OUT_1        (GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN0)
#define GPIO_TIM2_CH1OUT_2        (GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN15)
#define GPIO_TIM2_CH1OUT_3        (GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN5)
#define GPIO_TIM2_CH2IN_1         (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTA|GPIO_PIN1)
#define GPIO_TIM2_CH2IN_2         (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTB|GPIO_PIN3)
#define GPIO_TIM2_CH2OUT_1        (GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN1)
#define GPIO_TIM2_CH2OUT_2        (GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN3)
#define GPIO_TIM2_CH3IN_1         (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTA|GPIO_PIN2)
#define GPIO_TIM2_CH3IN_2         (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTB|GPIO_PIN10)
#define GPIO_TIM2_CH3OUT_1        (GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN2)
#define GPIO_TIM2_CH3OUT_2        (GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN10)
#define GPIO_TIM2_CH4IN_1         (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTA|GPIO_PIN3)
#define GPIO_TIM2_CH4IN_2         (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTB|GPIO_PIN11)
#define GPIO_TIM2_CH4OUT_1        (GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN3)
#define GPIO_TIM2_CH4OUT_2        (GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN11)
#define GPIO_TIM2_ETR_1           (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTA|GPIO_PIN0)
#define GPIO_TIM2_ETR_2           (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTA|GPIO_PIN15)
#define GPIO_TIM2_ETR_3           (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTA|GPIO_PIN5)

#define GPIO_TIM3_CH1IN_1         (GPIO_ALT|GPIO_AF2|GPIO_FLOAT|GPIO_PORTA|GPIO_PIN6)
#define GPIO_TIM3_CH1IN_2         (GPIO_ALT|GPIO_AF2|GPIO_FLOAT|GPIO_PORTB|GPIO_PIN4)
#define GPIO_TIM3_CH1IN_3         (GPIO_ALT|GPIO_AF2|GPIO_FLOAT|GPIO_PORTC|GPIO_PIN6)
#define GPIO_TIM3_CH1OUT_1        (GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN6)
#define GPIO_TIM3_CH1OUT_2        (GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN4)
#define GPIO_TIM3_CH1OUT_3        (GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN6)
#define GPIO_TIM3_CH2IN_1         (GPIO_ALT|GPIO_AF2|GPIO_FLOAT|GPIO_PORTA|GPIO_PIN7)
#define GPIO_TIM3_CH2IN_2         (GPIO_ALT|GPIO_AF2|GPIO_FLOAT|GPIO_PORTB|GPIO_PIN5)
#define GPIO_TIM3_CH2IN_3         (GPIO_ALT|GPIO_AF2|GPIO_FLOAT|GPIO_PORTC|GPIO_PIN7)
#define GPIO_TIM3_CH2OUT_1        (GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN7)
#define GPIO_TIM3_CH2OUT_2        (GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN5)
#define GPIO_TIM3_CH2OUT_3        (GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN7)
#define GPIO_TIM3_CH3IN_1         (GPIO_ALT|GPIO_AF2|GPIO_FLOAT|GPIO_PORTB|GPIO_PIN0)
#define GPIO_TIM3_CH3IN_2         (GPIO_ALT|GPIO_AF2|GPIO_FLOAT|GPIO_PORTC|GPIO_PIN8)
#define GPIO_TIM3_CH3OUT_1        (GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN0)
#define GPIO_TIM3_CH3OUT_2        (GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN8)
#define GPIO_TIM3_CH4IN_1         (GPIO_ALT|GPIO_AF2|GPIO_FLOAT|GPIO_PORTB|GPIO_PIN1)
#define GPIO_TIM3_CH4IN_2         (GPIO_ALT|GPIO_AF2|GPIO_FLOAT|GPIO_PORTC|GPIO_PIN9)
#define GPIO_TIM3_CH4OUT_1        (GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN1)
#define GPIO_TIM3_CH4OUT_2        (GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN9)
#define GPIO_TIM3_ETR_0           (GPIO_ALT|GPIO_AF2|GPIO_FLOAT|GPIO_PORTD|GPIO_PIN2)

#define GPIO_TIM4_CH1IN_1         (GPIO_ALT|GPIO_AF2|GPIO_FLOAT|GPIO_PORTB|GPIO_PIN6)
#define GPIO_TIM4_CH1IN_2         (GPIO_ALT|GPIO_AF2|GPIO_FLOAT|GPIO_PORTD|GPIO_PIN12)
#define GPIO_TIM4_CH1OUT_1        (GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN6)
#define GPIO_TIM4_CH1OUT_2        (GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTD|GPIO_PIN12)
#define GPIO_TIM4_CH2IN_1         (GPIO_ALT|GPIO_AF2|GPIO_FLOAT|GPIO_PORTB|GPIO_PIN7)
#define GPIO_TIM4_CH2IN_2         (GPIO_ALT|GPIO_AF2|GPIO_FLOAT|GPIO_PORTD|GPIO_PIN13)
#define GPIO_TIM4_CH2OUT_1        (GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN7)
#define GPIO_TIM4_CH2OUT_2        (GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTD|GPIO_PIN13)
#define GPIO_TIM4_CH3IN_1         (GPIO_ALT|GPIO_AF2|GPIO_FLOAT|GPIO_PORTB|GPIO_PIN8)
#define GPIO_TIM4_CH3IN_2         (GPIO_ALT|GPIO_AF2|GPIO_FLOAT|GPIO_PORTD|GPIO_PIN14)
#define GPIO_TIM4_CH3OUT_1        (GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN8)
#define GPIO_TIM4_CH3OUT_2        (GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTD|GPIO_PIN14)
#define GPIO_TIM4_CH4IN_1         (GPIO_ALT|GPIO_AF2|GPIO_FLOAT|GPIO_PORTB|GPIO_PIN9)
#define GPIO_TIM4_CH4IN_2         (GPIO_ALT|GPIO_AF2|GPIO_FLOAT|GPIO_PORTD|GPIO_PIN15)
#define GPIO_TIM4_CH4OUT_1        (GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN9)
#define GPIO_TIM4_CH4OUT_2        (GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTD|GPIO_PIN15)
#define GPIO_TIM4_ETR_0           (GPIO_ALT|GPIO_AF2|GPIO_FLOAT|GPIO_PORTE|GPIO_PIN0)

#define GPIO_TIM5_CH1IN_1         (GPIO_ALT|GPIO_AF2|GPIO_FLOAT|GPIO_PORTA|GPIO_PIN0)
#define GPIO_TIM5_CH1IN_2         (GPIO_ALT|GPIO_AF2|GPIO_FLOAT|GPIO_PORTH|GPIO_PIN10)
#define GPIO_TIM5_CH1OUT_1        (GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN0)
#define GPIO_TIM5_CH1OUT_2        (GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTH|GPIO_PIN10)
#define GPIO_TIM5_CH2IN_1         (GPIO_ALT|GPIO_AF2|GPIO_FLOAT|GPIO_PORTA|GPIO_PIN1)
#define GPIO_TIM5_CH2IN_2         (GPIO_ALT|GPIO_AF2|GPIO_FLOAT|GPIO_PORTH|GPIO_PIN11)
#define GPIO_TIM5_CH2OUT_1        (GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN1)
#define GPIO_TIM5_CH2OUT_2        (GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTH|GPIO_PIN11)
#define GPIO_TIM5_CH3IN_1         (GPIO_ALT|GPIO_AF2|GPIO_FLOAT|GPIO_PORTA|GPIO_PIN2)
#define GPIO_TIM5_CH3IN_2         (GPIO_ALT|GPIO_AF2|GPIO_FLOAT|GPIO_PORTH|GPIO_PIN12)
#define GPIO_TIM5_CH3OUT_1        (GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN2)
#define GPIO_TIM5_CH3OUT_2        (GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTH|GPIO_PIN12)
#define GPIO_TIM5_CH4IN_1         (GPIO_ALT|GPIO_AF2|GPIO_FLOAT|GPIO_PORTA|GPIO_PIN3)
#define GPIO_TIM5_CH4IN_2         (GPIO_ALT|GPIO_AF2|GPIO_FLOAT|GPIO_PORTI|GPIO_PIN0)
#define GPIO_TIM5_CH4OUT_1        (GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN3)
#define GPIO_TIM5_CH4OUT_2        (GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTI|GPIO_PIN0)
#define GPIO_TIM5_ETR_1           (GPIO_ALT|GPIO_AF2|GPIO_FLOAT|GPIO_PORTA|GPIO_PIN4)
#define GPIO_TIM5_ETR_2           (GPIO_ALT|GPIO_AF2|GPIO_FLOAT|GPIO_PORTH|GPIO_PIN8)

#define GPIO_TIM8_BKIN_1          (GPIO_ALT|GPIO_AF3|GPIO_PORTA|GPIO_PIN6)
#define GPIO_TIM8_BKIN_2          (GPIO_ALT|GPIO_AF3|GPIO_PORTG|GPIO_PIN2)
#define GPIO_TIM8_BKIN_3          (GPIO_ALT|GPIO_AF3|GPIO_PORTI|GPIO_PIN4)
#define GPIO_TIM8_BKIN_4          (GPIO_ALT|GPIO_AF3|GPIO_PORTK|GPIO_PIN2)
#define GPIO_TIM8_BKIN_COMP12_1   (GPIO_ALT|GPIO_AF10|GPIO_PORTA|GPIO_PIN6)
#define GPIO_TIM8_BKIN_COMP12_2   (GPIO_ALT|GPIO_AF10|GPIO_PORTK|GPIO_PIN2)
#define GPIO_TIM8_BKIN_COMP12_3   (GPIO_ALT|GPIO_AF11|GPIO_PORTG|GPIO_PIN2)
#define GPIO_TIM8_BKIN_COMP12_4   (GPIO_ALT|GPIO_AF11|GPIO_PORTI|GPIO_PIN4)
#define GPIO_TIM8_BKIN2_1         (GPIO_ALT|GPIO_AF3|GPIO_PORTA|GPIO_PIN8)
#define GPIO_TIM8_BKIN2_2         (GPIO_ALT|GPIO_AF3|GPIO_PORTG|GPIO_PIN3)
#define GPIO_TIM8_BKIN2_3         (GPIO_ALT|GPIO_AF3|GPIO_PORTI|GPIO_PIN1)
#define GPIO_TIM8_BKIN2_COMP12_1  (GPIO_ALT|GPIO_AF11|GPIO_PORTG|GPIO_PIN3)
#define GPIO_TIM8_BKIN2_COMP12_2  (GPIO_ALT|GPIO_AF11|GPIO_PORTI|GPIO_PIN1)
#define GPIO_TIM8_BKIN2_COMP12_3  (GPIO_ALT|GPIO_AF12|GPIO_PORTA|GPIO_PIN8)
#define GPIO_TIM8_CH1IN_1         (GPIO_ALT|GPIO_AF3|GPIO_FLOAT|GPIO_PORTC|GPIO_PIN6)
#define GPIO_TIM8_CH1IN_2         (GPIO_ALT|GPIO_AF3|GPIO_FLOAT|GPIO_PORTI|GPIO_PIN5)
#define GPIO_TIM8_CH1IN_3         (GPIO_ALT|GPIO_AF3|GPIO_FLOAT|GPIO_PORTJ|GPIO_PIN8)
#define GPIO_TIM8_CH1OUT_1        (GPIO_ALT|GPIO_AF3|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN6)
#define GPIO_TIM8_CH1OUT_2        (GPIO_ALT|GPIO_AF3|GPIO_PUSHPULL|GPIO_PORTI|GPIO_PIN5)
#define GPIO_TIM8_CH1OUT_3        (GPIO_ALT|GPIO_AF3|GPIO_PUSHPULL|GPIO_PORTJ|GPIO_PIN8)
#define GPIO_TIM8_CH1NOUT_1       (GPIO_ALT|GPIO_AF3|GPIO_PORTA|GPIO_PIN5)
#define GPIO_TIM8_CH1NOUT_2       (GPIO_ALT|GPIO_AF3|GPIO_PORTA|GPIO_PIN7)
#define GPIO_TIM8_CH1NOUT_3       (GPIO_ALT|GPIO_AF3|GPIO_PORTH|GPIO_PIN13)
#define GPIO_TIM8_CH1NOUT_4       (GPIO_ALT|GPIO_AF3|GPIO_PORTJ|GPIO_PIN9)
#define GPIO_TIM8_CH2IN_1         (GPIO_ALT|GPIO_AF3|GPIO_FLOAT|GPIO_PORTC|GPIO_PIN7)
#define GPIO_TIM8_CH2IN_2         (GPIO_ALT|GPIO_AF3|GPIO_FLOAT|GPIO_PORTI|GPIO_PIN6)
#define GPIO_TIM8_CH2IN_3         (GPIO_ALT|GPIO_AF3|GPIO_FLOAT|GPIO_PORTJ|GPIO_PIN10)
#define GPIO_TIM8_CH2IN_4         (GPIO_ALT|GPIO_AF3|GPIO_FLOAT|GPIO_PORTJ|GPIO_PIN6)
#define GPIO_TIM8_CH2OUT_1        (GPIO_ALT|GPIO_AF3|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN7)
#define GPIO_TIM8_CH2OUT_2        (GPIO_ALT|GPIO_AF3|GPIO_PUSHPULL|GPIO_PORTI|GPIO_PIN6)
#define GPIO_TIM8_CH2OUT_3        (GPIO_ALT|GPIO_AF3|GPIO_PUSHPULL|GPIO_PORTJ|GPIO_PIN10)
#define GPIO_TIM8_CH2OUT_4        (GPIO_ALT|GPIO_AF3|GPIO_PORTJ|GPIO_PIN6)
#define GPIO_TIM8_CH2NOUT_1       (GPIO_ALT|GPIO_AF3|GPIO_PORTB|GPIO_PIN0)
#define GPIO_TIM8_CH2NOUT_2       (GPIO_ALT|GPIO_AF3|GPIO_PORTB|GPIO_PIN14)
#define GPIO_TIM8_CH2NOUT_3       (GPIO_ALT|GPIO_AF3|GPIO_PORTH|GPIO_PIN14)
#define GPIO_TIM8_CH2NOUT_4       (GPIO_ALT|GPIO_AF3|GPIO_PORTJ|GPIO_PIN11)
#define GPIO_TIM8_CH2NOUT_5       (GPIO_ALT|GPIO_AF3|GPIO_PORTJ|GPIO_PIN7)
#define GPIO_TIM8_CH3IN_1         (GPIO_ALT|GPIO_AF3|GPIO_FLOAT|GPIO_PORTC|GPIO_PIN8)
#define GPIO_TIM8_CH3IN_2         (GPIO_ALT|GPIO_AF3|GPIO_FLOAT|GPIO_PORTI|GPIO_PIN7)
#define GPIO_TIM8_CH3IN_3         (GPIO_ALT|GPIO_AF3|GPIO_FLOAT|GPIO_PORTK|GPIO_PIN0)
#define GPIO_TIM8_CH3OUT_1        (GPIO_ALT|GPIO_AF3|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN8)
#define GPIO_TIM8_CH3OUT_2        (GPIO_ALT|GPIO_AF3|GPIO_PUSHPULL|GPIO_PORTI|GPIO_PIN7)
#define GPIO_TIM8_CH3OUT_3        (GPIO_ALT|GPIO_AF3|GPIO_PUSHPULL|GPIO_PORTK|GPIO_PIN0)
#define GPIO_TIM8_CH3NOUT_1       (GPIO_ALT|GPIO_AF3|GPIO_PORTB|GPIO_PIN1)
#define GPIO_TIM8_CH3NOUT_2       (GPIO_ALT|GPIO_AF3|GPIO_PORTB|GPIO_PIN15)
#define GPIO_TIM8_CH3NOUT_3       (GPIO_ALT|GPIO_AF3|GPIO_PORTH|GPIO_PIN15)
#define GPIO_TIM8_CH3NOUT_4       (GPIO_ALT|GPIO_AF3|GPIO_PORTK|GPIO_PIN1)
#define GPIO_TIM8_CH4IN_1         (GPIO_ALT|GPIO_AF3|GPIO_FLOAT|GPIO_PORTC|GPIO_PIN9)
#define GPIO_TIM8_CH4IN_2         (GPIO_ALT|GPIO_AF3|GPIO_FLOAT|GPIO_PORTI|GPIO_PIN2)
#define GPIO_TIM8_CH4OUT_1        (GPIO_ALT|GPIO_AF3|GPIO_PUSHPULL|GPIO_PORTC|GPIO_PIN9)
#define GPIO_TIM8_CH4OUT_2        (GPIO_ALT|GPIO_AF3|GPIO_PUSHPULL|GPIO_PORTI|GPIO_PIN2)
#define GPIO_TIM8_ETR_1           (GPIO_ALT|GPIO_AF3|GPIO_FLOAT|GPIO_PORTA|GPIO_PIN0)
#define GPIO_TIM8_ETR_2           (GPIO_ALT|GPIO_AF3|GPIO_FLOAT|GPIO_PORTG|GPIO_PIN8)
#define GPIO_TIM8_ETR_3           (GPIO_ALT|GPIO_AF3|GPIO_FLOAT|GPIO_PORTI|GPIO_PIN3)

#define GPIO_TIM12_CH1IN_1        (GPIO_ALT|GPIO_AF2|GPIO_FLOAT|GPIO_PORTB|GPIO_PIN14)
#define GPIO_TIM12_CH1IN_2        (GPIO_ALT|GPIO_AF2|GPIO_FLOAT|GPIO_PORTH|GPIO_PIN6)
#define GPIO_TIM12_CH1OUT_1       (GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN14)
#define GPIO_TIM12_CH1OUT_2       (GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTH|GPIO_PIN6)
#define GPIO_TIM12_CH2IN_1        (GPIO_ALT|GPIO_AF2|GPIO_FLOAT|GPIO_PORTB|GPIO_PIN15)
#define GPIO_TIM12_CH2IN_2        (GPIO_ALT|GPIO_AF2|GPIO_FLOAT|GPIO_PORTH|GPIO_PIN9)
#define GPIO_TIM12_CH2OUT_1       (GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN15)
#define GPIO_TIM12_CH2OUT_2       (GPIO_ALT|GPIO_AF2|GPIO_PUSHPULL|GPIO_PORTH|GPIO_PIN9)

#define GPIO_TIM13_CH1IN_1        (GPIO_ALT|GPIO_AF9|GPIO_FLOAT|GPIO_PORTA|GPIO_PIN6)
#define GPIO_TIM13_CH1IN_2        (GPIO_ALT|GPIO_AF9|GPIO_FLOAT|GPIO_PORTF|GPIO_PIN8)
#define GPIO_TIM13_CH1OUT_1       (GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN6)
#define GPIO_TIM13_CH1OUT_2       (GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTF|GPIO_PIN8)

#define GPIO_TIM14_CH1IN_1        (GPIO_ALT|GPIO_AF9|GPIO_FLOAT|GPIO_PORTA|GPIO_PIN7)
#define GPIO_TIM14_CH1IN_2        (GPIO_ALT|GPIO_AF9|GPIO_FLOAT|GPIO_PORTF|GPIO_PIN9)
#define GPIO_TIM14_CH1OUT_1       (GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN7)
#define GPIO_TIM14_CH1OUT_2       (GPIO_ALT|GPIO_AF9|GPIO_PUSHPULL|GPIO_PORTF|GPIO_PIN9)

#define GPIO_TIM15_BKIN_1         (GPIO_ALT|GPIO_AF4|GPIO_PORTA|GPIO_PIN0)
#define GPIO_TIM15_BKIN_2         (GPIO_ALT|GPIO_AF4|GPIO_PORTE|GPIO_PIN3)
#define GPIO_TIM15_CH1IN_1        (GPIO_ALT|GPIO_AF4|GPIO_FLOAT|GPIO_PORTA|GPIO_PIN2)
#define GPIO_TIM15_CH1IN_2        (GPIO_ALT|GPIO_AF4|GPIO_FLOAT|GPIO_PORTE|GPIO_PIN5)
#define GPIO_TIM15_CH1OUT_1       (GPIO_ALT|GPIO_AF4|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN2)
#define GPIO_TIM15_CH1OUT_2       (GPIO_ALT|GPIO_AF4|GPIO_PUSHPULL|GPIO_PORTE|GPIO_PIN5)

#define GPIO_TIM15_CH1NOUT_1      (GPIO_ALT|GPIO_AF4|GPIO_PORTA|GPIO_PIN1)
#define GPIO_TIM15_CH1NOUT_2      (GPIO_ALT|GPIO_AF4|GPIO_PORTE|GPIO_PIN4)
#define GPIO_TIM15_CH2IN_1        (GPIO_ALT|GPIO_AF4|GPIO_FLOAT|GPIO_PORTA|GPIO_PIN3)
#define GPIO_TIM15_CH2IN_2        (GPIO_ALT|GPIO_AF4|GPIO_FLOAT|GPIO_PORTE|GPIO_PIN6)
#define GPIO_TIM15_CH2OUT_1       (GPIO_ALT|GPIO_AF4|GPIO_PORTA|GPIO_PIN3)
#define GPIO_TIM15_CH2OUT_2       (GPIO_ALT|GPIO_AF4|GPIO_PORTE|GPIO_PIN6)

#define GPIO_TIM16_BKIN_1         (GPIO_ALT|GPIO_AF1|GPIO_PORTB|GPIO_PIN4)
#define GPIO_TIM16_BKIN_2         (GPIO_ALT|GPIO_AF1|GPIO_PORTF|GPIO_PIN10)
#define GPIO_TIM16_CH1IN_1        (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTB|GPIO_PIN8)
#define GPIO_TIM16_CH1IN_2        (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTF|GPIO_PIN6)
#define GPIO_TIM16_CH1OUT_1       (GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN8)
#define GPIO_TIM16_CH1OUT_2       (GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTF|GPIO_PIN6)
#define GPIO_TIM16_CH1NOUT_1      (GPIO_ALT|GPIO_AF1|GPIO_PORTB|GPIO_PIN6)
#define GPIO_TIM16_CH1NOUT_2      (GPIO_ALT|GPIO_AF1|GPIO_PORTF|GPIO_PIN8)

#define GPIO_TIM17_BKIN_1         (GPIO_ALT|GPIO_AF1|GPIO_PORTB|GPIO_PIN5)
#define GPIO_TIM17_BKIN_2         (GPIO_ALT|GPIO_AF1|GPIO_PORTG|GPIO_PIN6)
#define GPIO_TIM17_CH1IN_1        (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTB|GPIO_PIN9)
#define GPIO_TIM17_CH1IN_2        (GPIO_ALT|GPIO_AF1|GPIO_FLOAT|GPIO_PORTF|GPIO_PIN7)
#define GPIO_TIM17_CH1OUT_1       (GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN9)
#define GPIO_TIM17_CH1OUT_2       (GPIO_ALT|GPIO_AF1|GPIO_PUSHPULL|GPIO_PORTF|GPIO_PIN7)
#define GPIO_TIM17_CH1NOUT_1      (GPIO_ALT|GPIO_AF1|GPIO_PORTB|GPIO_PIN7)
#define GPIO_TIM17_CH1NOUT_2      (GPIO_ALT|GPIO_AF1|GPIO_PORTF|GPIO_PIN9)

/* Trace */

#define GPIO_TRACECLK_0           (GPIO_ALT|GPIO_AF0|GPIO_PORTE|GPIO_PIN2)
#define GPIO_TRACED0_1            (GPIO_ALT|GPIO_AF0|GPIO_PORTC|GPIO_PIN1)
#define GPIO_TRACED0_2            (GPIO_ALT|GPIO_AF0|GPIO_PORTE|GPIO_PIN3)
#define GPIO_TRACED0_3            (GPIO_ALT|GPIO_AF0|GPIO_PORTG|GPIO_PIN13)
#define GPIO_TRACED1_1            (GPIO_ALT|GPIO_AF0|GPIO_PORTC|GPIO_PIN8)
#define GPIO_TRACED1_2            (GPIO_ALT|GPIO_AF0|GPIO_PORTE|GPIO_PIN4)
#define GPIO_TRACED1_3            (GPIO_ALT|GPIO_AF0|GPIO_PORTG|GPIO_PIN14)
#define GPIO_TRACED2_1            (GPIO_ALT|GPIO_AF0|GPIO_PORTD|GPIO_PIN2)
#define GPIO_TRACED2_2            (GPIO_ALT|GPIO_AF0|GPIO_PORTE|GPIO_PIN5)
#define GPIO_TRACED3_1            (GPIO_ALT|GPIO_AF0|GPIO_PORTC|GPIO_PIN12)
#define GPIO_TRACED3_2            (GPIO_ALT|GPIO_AF0|GPIO_PORTE|GPIO_PIN6)
#define GPIO_TRACESWO_0           (GPIO_ALT|GPIO_AF0|GPIO_PORTB|GPIO_PIN3)

/* Trigger Pins */

#define GPIO_TRGIN_0              (GPIO_ALT|GPIO_AF0|GPIO_PORTJ|GPIO_PIN7)
#define GPIO_TRGIO_0              (GPIO_ALT|GPIO_AF0|GPIO_PORTC|GPIO_PIN7)
#define GPIO_TRGOUT_0             (GPIO_ALT|GPIO_AF0|GPIO_PORTJ|GPIO_PIN12)

/* UARTs/USARTs */

#define GPIO_USART1_CK_0          (GPIO_ALT|GPIO_AF7|GPIO_PORTA|GPIO_PIN8)
#define GPIO_USART1_CTS_NSS_0     (GPIO_ALT|GPIO_AF7|GPIO_PORTA|GPIO_PIN11)
#define GPIO_USART1_RTS_0         (GPIO_ALT|GPIO_AF7|GPIO_PORTA|GPIO_PIN12)
#define GPIO_USART1_RX_1          (GPIO_ALT|GPIO_AF4|GPIO_PULLUP|GPIO_PORTB|GPIO_PIN15)
#define GPIO_USART1_RX_2          (GPIO_ALT|GPIO_AF7|GPIO_PULLUP|GPIO_PORTA|GPIO_PIN10)
#define GPIO_USART1_RX_3          (GPIO_ALT|GPIO_AF7|GPIO_PULLUP|GPIO_PORTB|GPIO_PIN7)
#define GPIO_USART1_TX_1          (GPIO_ALT|GPIO_AF4|GPIO_PUSHPULL|GPIO_PULLUP|GPIO_PORTB|GPIO_PIN14)
#define GPIO_USART1_TX_2          (GPIO_ALT|GPIO_AF7|GPIO_PUSHPULL|GPIO_PULLUP|GPIO_PORTA|GPIO_PIN9)
#define GPIO_USART1_TX_3          (GPIO_ALT|GPIO_AF7|GPIO_PUSHPULL|GPIO_PULLUP|GPIO_PORTB|GPIO_PIN6)

#define GPIO_USART2_CK_1          (GPIO_ALT|GPIO_AF7|GPIO_PORTA|GPIO_PIN4)
#define GPIO_USART2_CK_2          (GPIO_ALT|GPIO_AF7|GPIO_PORTD|GPIO_PIN7)
#define GPIO_USART2_CTS_NSS_1     (GPIO_ALT|GPIO_AF7|GPIO_PORTA|GPIO_PIN0)
#define GPIO_USART2_CTS_NSS_2     (GPIO_ALT|GPIO_AF7|GPIO_PORTD|GPIO_PIN3)
#define GPIO_USART2_RTS_1         (GPIO_ALT|GPIO_AF7|GPIO_PORTA|GPIO_PIN1)
#define GPIO_USART2_RTS_2         (GPIO_ALT|GPIO_AF7|GPIO_PORTD|GPIO_PIN4)
#define GPIO_USART2_RX_1          (GPIO_ALT|GPIO_AF7|GPIO_PULLUP|GPIO_PORTA|GPIO_PIN3)
#define GPIO_USART2_RX_2          (GPIO_ALT|GPIO_AF7|GPIO_PULLUP|GPIO_PORTD|GPIO_PIN6)
#define GPIO_USART2_TX_1          (GPIO_ALT|GPIO_AF7|GPIO_PUSHPULL|GPIO_PULLUP|GPIO_PORTA|GPIO_PIN2)
#define GPIO_USART2_TX_2          (GPIO_ALT|GPIO_AF7|GPIO_PUSHPULL|GPIO_PULLUP|GPIO_PORTD|GPIO_PIN5)

#define GPIO_USART3_CK_1          (GPIO_ALT|GPIO_AF7|GPIO_PORTB|GPIO_PIN12)
#define GPIO_USART3_CK_2          (GPIO_ALT|GPIO_AF7|GPIO_PORTC|GPIO_PIN12)
#define GPIO_USART3_CK_3          (GPIO_ALT|GPIO_AF7|GPIO_PORTD|GPIO_PIN10)
#define GPIO_USART3_CTS_NSS_1     (GPIO_ALT|GPIO_AF7|GPIO_PORTB|GPIO_PIN13)
#define GPIO_USART3_CTS_NSS_2     (GPIO_ALT|GPIO_AF7|GPIO_PORTD|GPIO_PIN11)
#define GPIO_USART3_RTS_1         (GPIO_ALT|GPIO_AF7|GPIO_PORTB|GPIO_PIN14)
#define GPIO_USART3_RTS_2         (GPIO_ALT|GPIO_AF7|GPIO_PORTD|GPIO_PIN12)
#define GPIO_USART3_RX_1          (GPIO_ALT|GPIO_AF7|GPIO_PULLUP|GPIO_PORTB|GPIO_PIN11)
#define GPIO_USART3_RX_2          (GPIO_ALT|GPIO_AF7|GPIO_PULLUP|GPIO_PORTC|GPIO_PIN11)
#define GPIO_USART3_RX_3          (GPIO_ALT|GPIO_AF7|GPIO_PULLUP|GPIO_PORTD|GPIO_PIN9)
#define GPIO_USART3_TX_1          (GPIO_ALT|GPIO_AF7|GPIO_PUSHPULL|GPIO_PULLUP|GPIO_PORTB|GPIO_PIN10)
#define GPIO_USART3_TX_2          (GPIO_ALT|GPIO_AF7|GPIO_PUSHPULL|GPIO_PULLUP|GPIO_PORTC|GPIO_PIN10)
#define GPIO_USART3_TX_3          (GPIO_ALT|GPIO_AF7|GPIO_PUSHPULL|GPIO_PULLUP|GPIO_PORTD|GPIO_PIN8)

#define GPIO_UART4_CTS_1          (GPIO_ALT|GPIO_AF8|GPIO_PORTB|GPIO_PIN0)
#define GPIO_UART4_CTS_2          (GPIO_ALT|GPIO_AF8|GPIO_PORTB|GPIO_PIN15)
#define GPIO_UART4_RTS_1          (GPIO_ALT|GPIO_AF8|GPIO_PORTA|GPIO_PIN15)
#define GPIO_UART4_RTS_2          (GPIO_ALT|GPIO_AF8|GPIO_PORTB|GPIO_PIN14)
#define GPIO_UART4_RX_1           (GPIO_ALT|GPIO_AF6|GPIO_PULLUP|GPIO_PORTA|GPIO_PIN11)
#define GPIO_UART4_RX_2           (GPIO_ALT|GPIO_AF8|GPIO_PULLUP|GPIO_PORTA|GPIO_PIN1)
#define GPIO_UART4_RX_3           (GPIO_ALT|GPIO_AF8|GPIO_PULLUP|GPIO_PORTB|GPIO_PIN8)
#define GPIO_UART4_RX_4           (GPIO_ALT|GPIO_AF8|GPIO_PULLUP|GPIO_PORTC|GPIO_PIN11)
#define GPIO_UART4_RX_5           (GPIO_ALT|GPIO_AF8|GPIO_PULLUP|GPIO_PORTD|GPIO_PIN0)
#define GPIO_UART4_RX_6           (GPIO_ALT|GPIO_AF8|GPIO_PULLUP|GPIO_PORTH|GPIO_PIN14)
#define GPIO_UART4_RX_7           (GPIO_ALT|GPIO_AF8|GPIO_PULLUP|GPIO_PORTI|GPIO_PIN9)
#define GPIO_UART4_TX_1           (GPIO_ALT|GPIO_AF6|GPIO_PUSHPULL|GPIO_PULLUP|GPIO_PORTA|GPIO_PIN12)
#define GPIO_UART4_TX_2           (GPIO_ALT|GPIO_AF8|GPIO_PUSHPULL|GPIO_PULLUP|GPIO_PORTA|GPIO_PIN0)
#define GPIO_UART4_TX_3           (GPIO_ALT|GPIO_AF8|GPIO_PUSHPULL|GPIO_PULLUP|GPIO_PORTB|GPIO_PIN9)
#define GPIO_UART4_TX_4           (GPIO_ALT|GPIO_AF8|GPIO_PUSHPULL|GPIO_PULLUP|GPIO_PORTC|GPIO_PIN10)
#define GPIO_UART4_TX_5           (GPIO_ALT|GPIO_AF8|GPIO_PUSHPULL|GPIO_PULLUP|GPIO_PORTD|GPIO_PIN1)
#define GPIO_UART4_TX_6           (GPIO_ALT|GPIO_AF8|GPIO_PUSHPULL|GPIO_PULLUP|GPIO_PORTH|GPIO_PIN13)

#define GPIO_UART5_CTS_0          (GPIO_ALT|GPIO_AF8|GPIO_PORTC|GPIO_PIN9)
#define GPIO_UART5_RTS_0          (GPIO_ALT|GPIO_AF8|GPIO_PORTC|GPIO_PIN8)
#define GPIO_UART5_RX_1           (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PORTB|GPIO_PIN12)
#define GPIO_UART5_RX_2           (GPIO_ALT|GPIO_AF14|GPIO_PULLUP|GPIO_PORTB|GPIO_PIN5)
#define GPIO_UART5_RX_3           (GPIO_ALT|GPIO_AF8|GPIO_PULLUP|GPIO_PORTD|GPIO_PIN2)
#define GPIO_UART5_TX_1           (GPIO_ALT|GPIO_AF14|GPIO_PUSHPULL|GPIO_PULLUP|GPIO_PORTB|GPIO_PIN13)
#define GPIO_UART5_TX_2           (GPIO_ALT|GPIO_AF14|GPIO_PUSHPULL|GPIO_PULLUP|GPIO_PORTB|GPIO_PIN6)
#define GPIO_UART5_TX_3           (GPIO_ALT|GPIO_AF8|GPIO_PUSHPULL|GPIO_PULLUP|GPIO_PORTC|GPIO_PIN12)

#define GPIO_USART6_CK_1          (GPIO_ALT|GPIO_AF7|GPIO_PORTC|GPIO_PIN8)
#define GPIO_USART6_CK_2          (GPIO_ALT|GPIO_AF7|GPIO_PORTG|GPIO_PIN7)
#define GPIO_USART6_CTS_NSS_1     (GPIO_ALT|GPIO_AF7|GPIO_PORTG|GPIO_PIN13)
#define GPIO_USART6_CTS_NSS_2     (GPIO_ALT|GPIO_AF7|GPIO_PORTG|GPIO_PIN15)
#define GPIO_USART6_RTS_1         (GPIO_ALT|GPIO_AF7|GPIO_PORTG|GPIO_PIN12)
#define GPIO_USART6_RTS_2         (GPIO_ALT|GPIO_AF7|GPIO_PORTG|GPIO_PIN8)
#define GPIO_USART6_RX_1          (GPIO_ALT|GPIO_AF7|GPIO_PULLUP|GPIO_PORTC|GPIO_PIN7)
#define GPIO_USART6_RX_2          (GPIO_ALT|GPIO_AF7|GPIO_PULLUP|GPIO_PORTG|GPIO_PIN9)
#define GPIO_USART6_TX_1          (GPIO_ALT|GPIO_AF7|GPIO_PUSHPULL|GPIO_PULLUP|GPIO_PORTC|GPIO_PIN6)
#define GPIO_USART6_TX_2          (GPIO_ALT|GPIO_AF7|GPIO_PUSHPULL|GPIO_PULLUP|GPIO_PORTG|GPIO_PIN14)

#define GPIO_UART7_CTS_1          (GPIO_ALT|GPIO_AF7|GPIO_PORTE|GPIO_PIN10)
#define GPIO_UART7_CTS_2          (GPIO_ALT|GPIO_AF7|GPIO_PORTF|GPIO_PIN9)
#define GPIO_UART7_RTS_1          (GPIO_ALT|GPIO_AF7|GPIO_PORTE|GPIO_PIN9)
#define GPIO_UART7_RTS_2          (GPIO_ALT|GPIO_AF7|GPIO_PORTF|GPIO_PIN8)
#define GPIO_UART7_RX_1           (GPIO_ALT|GPIO_AF11|GPIO_PULLUP|GPIO_PORTA|GPIO_PIN8)
#define GPIO_UART7_RX_2           (GPIO_ALT|GPIO_AF11|GPIO_PULLUP|GPIO_PORTB|GPIO_PIN3)
#define GPIO_UART7_RX_3           (GPIO_ALT|GPIO_AF7|GPIO_PULLUP|GPIO_PORTE|GPIO_PIN7)
#define GPIO_UART7_RX_4           (GPIO_ALT|GPIO_AF7|GPIO_PULLUP|GPIO_PORTF|GPIO_PIN6)
#define GPIO_UART7_TX_1           (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PULLUP|GPIO_PORTA|GPIO_PIN15)
#define GPIO_UART7_TX_2           (GPIO_ALT|GPIO_AF11|GPIO_PUSHPULL|GPIO_PULLUP|GPIO_PORTB|GPIO_PIN4)
#define GPIO_UART7_TX_3           (GPIO_ALT|GPIO_AF7|GPIO_PUSHPULL|GPIO_PULLUP|GPIO_PORTE|GPIO_PIN8)
#define GPIO_UART7_TX_4           (GPIO_ALT|GPIO_AF7|GPIO_PUSHPULL|GPIO_PULLUP|GPIO_PORTF|GPIO_PIN7)

#define GPIO_UART8_CTS_0          (GPIO_ALT|GPIO_AF8|GPIO_PORTD|GPIO_PIN14)
#define GPIO_UART8_RTS_0          (GPIO_ALT|GPIO_AF8|GPIO_PORTD|GPIO_PIN15)
#define GPIO_UART8_RX_1           (GPIO_ALT|GPIO_AF8|GPIO_PULLUP|GPIO_PORTE|GPIO_PIN0)
#define GPIO_UART8_RX_2           (GPIO_ALT|GPIO_AF8|GPIO_PULLUP|GPIO_PORTJ|GPIO_PIN9)
#define GPIO_UART8_TX_1           (GPIO_ALT|GPIO_AF8|GPIO_PUSHPULL|GPIO_PULLUP|GPIO_PORTE|GPIO_PIN1)
#define GPIO_UART8_TX_2           (GPIO_ALT|GPIO_AF8|GPIO_PUSHPULL|GPIO_PULLUP|GPIO_PORTJ|GPIO_PIN8)

#endif /* CONFIG_STM32H7_STM32H7X3XX || CONFIG_STM32H7_STM32H7X7XX || CONFIG_STM32H7_STM32H7B3XX */
#endif /* __ARCH_ARM_SRC_STM32H7_HARDWARE_STM32H7X3XX_PINMAP_H */
